- Create a JWT based Authentication system.
a. Normal Users can sign up using Name, Email and Password.
b. On sign in, create a JWT and return in response.
c. Create Admin Users. - Create an API to create a Topic (Name, Image) (Only Admin)
- Create an API to create Articles for a Topic (Title, Image, Content, isFeatured) (Only Admin)
- Create an API to update Articles (Only Admin)
- Create APIs to fetch all Topics, fetch a Topic by Id. (All Users can do) 6. Create APIs fetch all Articles for a Topic, fetch Article by Id.
a. Only Logged in Users can see the Articles which are featured.
b. Non logged in Users can see Articles other than Featured Articles.
c. Everytime an Article is fetched, increase and record the count along with Article details.
- Create option to associate tags with Articles
- When an Article is fetched, fetch related Articles also based on matching tags
- Make an option to change the order in which the article appears on get api results.
- The JWT token should expire in 5 minutes. After that all requests with that token should respond accordingly
- Create a binary tree representation of the Articles based on the count.
- When an article is deleted, update the tree representation.
# Future Updates:
- Hash Password instead of storing directly
- Add delete
- Add Validation
- Add test cases in Mocha(?)