- Create a clone of this repo
- Complete the tasks given below
- Create your own public repo on github and push your code there
- Share the repo link as a reply to the mail
The task is to build a webpage to display the trade statistics (Open, High, Low, Close, Volume) of a particular stock for a particular day. You should use Polygon free tier API for this task (https://polygon.io/)
- The given codebase has two parts, client and server.
- Go to server folder, you'll see in app.js that a POST route is exposed at /api/fetchStockData. Implement this API to fetch the trade statistics of a particular stock for a particular day using the Polygon API.
- Return only the required fields in the response in a json format. Handle various edge cases here along with relevant response codes.
- Go to client folder and run the react app. You'll see just a hello world screen for now.
- Create a form for the user to input the symbol of the stock and select a date and add a submit button.
- On submitting the form, send a request to the api route which is exposed and once the data is back, display the required details in the frontend (Open, High, Low, Close, Volume).
- The logical correctness of all individual tasks mentioned above
- Tackling of edge cases
- Efficiency of the code
- Naming conventions (No need to follow any standard pattern, just describe the pattern and make sure the code is consistent with it)
- Project structure (Again, no need to follow a standard pattern. Just make sure the structuring is logical and describe it)
- Documentation (This can just be a readme file with bullet points, as long as it explains what you've implemented, you're good to go).
- Bonus points for interesting UI (This obviously won't be considered if the core functionality isn't present).
- Imagine this is a real world scenario which thousands of users use to get the historic data of a stock for a particular day, how would this product change in order to improve the UX.
- What new features would you add in this product to increase it's utility for the end user.