Deployed at https://note-mi.herokuapp.com/
This repo contains all code(client and server). Client is inside client directory.
TASK DIVISION FOR REACT
- Creating calendars UI using react components.
- Feature to update the timeslot for schedules, editing the timeslot, dragging and dropping one time into another. Also adding validations in frontend such as if user doesn’t enter schedule title and enter it won’t be submitted.
- Using redux to call backend api to save, update, modify and update the schedules.
- Adding subscribers’ email
- Using redux to handle login and signup(authentication).
- Deployment
- Other features such as private routing (where logged in user will be redirected to private pages if tried to go to login page.).
- Using redux(actions) to call all the rest api and get data in every part of project.
- Sending verification email to server to authenticate
- Print the schedule
- Option to change to password when you forget the password. it should redirect to login.
- Privacy policy and help and support static pages
- On signup send verfication code to gmail. and after clicking on verification email then redirect to login.
- Login and signup pages
- Change and reset password pages
- Profile page
- Login with google
- Update profile
Server Major Endpoints:
-
Login:
https://note-mi.herokuapp.com/api/users/login method: post body: { "email":"[email protected]", "password":"nepal" }
-
Signup: (Signp is done by Sajit which is modified by Prekshya to send email verification)
https://note-mi.herokuapp.com/api/users/register method: post body:{ "name":"Sajit Khadka", "dob":"1994-05-20", "email":"[email protected]", "password":"nepal" } After this a verfication email would be sent. after clicking the link it will send the request to server with the url as: http://note-lu.herokuapp.com/api/users/authentication/jwt-token-encrypted (this process is authomatic as browser will send the get request from url after clicking.) Then the user will be registered. Please check your spam for verification link.
-
Adding Subscribers:
http://note-mi.herokuapp.com/api/subscribers method: post body:{ "email:"[email protected]" }
-
Add Schedule
https://note-mi.herokuapp.com/api/schedule/add method: post header:{ Authorization: "jwt-token-that-you-get-from-login-in } body:{ "title": "Mern Exam", "start": "2020/08/15 3:00", "end": "2020/08/15 5:00", "label": "college", "allDay": false, "selectable": true }
-
Get All schedules
https://note-mi.herokuapp.com/api/schedule/ method: get header:{ Authorization: "jwt-token-that-you-get-from-login-in }
-
Delete Schedule
https://note-mi.herokuapp.com/api/schedule/ method: delete header:{ Authorization: "jwt-token-that-you-get-from-login-in } body:{ "id": "5f2993fb0e31c600172c588f" //This is id of the schedule you want to delete }
-
Update Schedule
https://note-mi.herokuapp.com/api/schedule/ method:put header:{ Authorization: "jwt-token-that-you-get-from-login-in } body: { "id": "5f2716d905b7a15170d270d2", "title": "Android Assignment", "start": "2020-08-04T22:00:00.000Z", "end": "2020-08-04T03:27:00.000Z", "label": "college", "allDay": false, "selectable": true }
-
Signup after email verification(Partly done by Sajit)
https://note-mi.herokuapp.com/api/users/register method: post body:{ "name":"Prekshya Aryal", "dob":"1992-05-20", "email":"[email protected]", "password":"nepal" } After this a verfication email would be sent. after clicking the link it will send the request to server with the url as: http://note-lu.herokuapp.com/api/users/authentication/jwt-token-encrypted (this process is authomatic as browser will send the get request from url after clicking.) Then the user will be registered. Please check your spam/social as well for verification link.
-
Reset Password by sending email link
http://note-mi.herokuapp.com/api/users/forgotpassword
method: post
body:
{
"email":"[email protected]"
}
After this a link to reset password would be sent to your email. Please check your spam or social as well. after that it would redirect to a web page which will do a post method to submit the new password but in our case, we have to use postman to post the link you get.
-
Reset Password after you get the link from email.
Sample url that you get from email. http://note-mi.herokuapp.com/api/users/forgotpassword/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjVmMjk5ODRkMGUzMWM2MDAxNzJjNTg5MCIsImlhdCI6MTU5NjU2MTYxNywiZXhwIjoxNTk2NTYyODE3fQ.x3LQlLAWzz3Hmtn5SDhvHhAAKzr8FWY5IKidxxZQMV8 method: post body: { "newPassword":"nepal2" }
-
Update Profile
http://note-mi.herokuapp.com/api/users/update method: POST { "name":"Marinelle Reys", "dob":"2005-02-3", "email":"[email protected]", "password":"1234567", "phone":"4372197807" }
-
Google Login
http://note-mi.herokuapp.com/api/users/google-login method: post { idToken: "Token-you-get-from-google-login" }
- Saving Subscriber list
- Adding/modifiying/deleting the schedule from server using jwt authorization
- Login/Signup
- deployment
- Login using google
- edting profile and saving changes to database using validation and jwt authorization
- Signup after email verification.
- Resetting password through email verification.