* ToDo [1/4] - [-] Meta [2/5] - [X] README - [X] Prettify README - [X] License - [X] Usage - [X] Contributing - [X] Attributions - [X] LICENSE - [ ] CONTRIBUTING - [ ] Link to ARCHITECTURE - [ ] ARCHITECTURE - [ ] Where’s the thing that does X? - [ ] What does the thing that I am looking at do - [ ] Inspiration - [ ] [[https://github.com/kubecost/docs/blob/master/architecture.md][kubecost architecture.md]] - [ ] [[https://github.com/git/git-scm.com/blob/master/ARCHITECTURE.md][git-scm architecture.md]] - [ ] [[https://github.com/rust-analyzer/rust-analyzer/blob/master/docs/dev/architecture.md][rust-analyzer architecture.md]] - [ ] TODO - [ ] Clear all tasks - [-] Backend Django [1/5] - [X] Base setup for DJango + Vue - [-] Async (RQ mostly) job to download the equity [[https://www.bseindia.com/markets/MarketInfo/BhavCopy.aspx][bhavcopy zip]] every day at 6 PM for the current date - [X] Verify [[https://www.bseindia.com/download/BhavCopy/Equity/EQ050221_CSV.ZIP][this link]] doesn't change per day (check web archive) - this changes everyday, the zip file is of the format "EQ`DDMMYY`_CSV.ZIP" - [X] RQ job to which starts at 6 pm - [X] extracts and parses the CSV file in it - [X] dump data into postgres and redis - [X] if fails at 6 pm starts again after 5 mins + potential code for alert - [X] Writes the records into Redis into appropriate data structures (Fields: code, name, open, high, low, close) - [X] make multiple endpoints - [ ] Invalidate old data - [ ] When it has 2 days work of data in postgres only populate that with today - [-] Endpoint to serve main app - [X] If cache empty load from postgres and put it into redis - [ ] Default redis endpoint fails - [ ] Button for Pagination - [ ] No Pagination - [ ] Pagination to return 100 entries - [ ] Login - [ ] Open endpoint without login - [ ] Allow google auth for emails ending in `zerodha.com` or `zerodha.tech` or `shenoy.ameya@gmail.com` - [ ] JWT - [ ] Optionally have a demo username and password for login - [ ] Documentation - [-] Frontend Vue [5/7] - [X] Landing Page - [X] Prettify Bhav Copy Page - [X] Renders a simple VueJS frontend with a search box that allows the stored entries to be searched by name and renders a table of results and optionally download the results as CSV. Make this page look nice - [X] Search field to search on name - [X] Button to download searched results as CSV - [X] Veutify raise alert on error or success - [ ] Handle login - [ ] On table bar per quantity in cell - [X] Red for stocks going down, green for up - [X] Deploy [4/4] - [X] Docker - [X] Dockerfile - [X] docker-compose.yml - [X] Productionize K8s - [X] Make Architecture diagram - [X] [bullish.codingcoffee.me](https://bullish.codingcoffee.me)