- A complete system to create alerts for crypto currency prices.
No frameworks
are used. Everything is architected inGo
using hex architecture and DDD design principles.- Follow the setup instructions to run the project.
- Then after creating a demo alert, don't forget to check your spam email for the alert notification :)
-
Install docker and docker-compose on your system by following official docs
-
Clone the repo
git clone https://github.com/Mayhul-Jindal/crypto-alert
- Run docker-compose up
docker-compose up
- Use this postman instance to play with the API
https://www.postman.com/mission-physicist-26981670/workspace/crypto-alert-system/request/19360543-0bcd8c0d-640c-431f-bd15-fd70bd1fcc8d?tab=headers
- Create a rest API endpoint for the user’s to create an alert
alerts/create/
- Create a rest API endpoint for the user’s to delete an alert
alerts/delete/
- Create a rest API endpoint to
fetch all the alerts
that the user has created. - The response should also include the
status of the alerts
(created, triggered, completed, deleted) -
Paginate
the response. - Include
filter
options based on the status of the alerts - binance’s
websocket
connection to get real time price updates - When the price of the coin reaches the price specified by the users, send an email to the user that the target price has been hit
smtp
- Add a caching layer
redis
- Add user authentication to the endpoints. Use
JWT
tokens. - Go
- Use
Postgres
to store data andredis
for sorted sets (or any DB you feel that gets the job done) -
Kafka
as a message broker for the task to send emails /print the output - Bundle everything inside a docker-compose file so it’s easier for us to test.
- Document your solution in README.md file. Consider adding the following details
- Steps to run the project (eg: docker-compose up)
- Document the endpoints
- Document the solution for sending alerts
- edraw max --> work breakdown structure
- [ ]