SahiNotes
Functionalities -
- user should be able to signup/signin using email and password auth.
- user should be able to signup/signin using google auth.
- user should be able to verify his/her mobile number.
- user should be able to reset password using his email.
- user should be able to reset password using his mobile number if it is verified.
- user should be able to upload pdf notes in their profile.
- user should be able to view pdf notes uploaded by another user.
- user should be able to like their own as well as another user's notes.
- user should be able to remove their like from a liked notes.
- user should be ablt to comment on their own as well as another user's notes.
- user should receive emails while signing up.
- server should be able to prioritise jobs(won't require APIs).
- user should be able to logout of the website.
- share notes via copying URLs(won't require APIs).
- user should be able to download the pdf notes(won't require APIs).
- previews of pdf notes should be visible to the user.
- user should be able to save the pdf notes in their profile using localstorage and database(won't require APIs).
APIs
-
/users/auth/signup req - name, email id, password
-
/users/auth/signin req - email id, password
-
/users/auth/mobile/sendotp req - mobile
-
/users/auth/mobile/verifyotp req - otp
-
/users/auth/mobile/deleteotp
-
/users/auth/password_reset
-
/users/auth/password_update req - new password, confirm password
-
/users/notes/upload req - name, about, file
-
/users/notes/view/?note_id=note_id res - name, about, comments, likes, file, author name, preview image
-
/users/likes/like/?note_id=note_id
-
/users/likes/unlike/?note_id=note_id
-
/users/comments/add_comment/?note_id=note_id&type=notes
-
/users/comments/add_comment/?comment_id=comment_id&type=comments
-
/users/emails/new_signup/?email=email
-
/users/auth/logout
-
/users/notes/preview/?note_id=note_id
Models
-
User - name, email, password, list of liked notes, list of comments, notes, mobile, otp
-
Notes - name, about, file path, preview image path, user id, list of likes, list of first level comments
-
Comments - text, list of child comments, notes id, comment id, type, user id