Backend for the website boring WKND
Budget: €250 – €750 EUR
Good day, we are looking for an assistant
Here are the tasks we need help with.
The project is built on MERN, respectively, backend = Node, Express, Mongo. + JWT (json web token). Any user validation goes by the token. This functionality is now fully functional on the backend, but you need to configure token validation for some existing requests and for all new ones.
The user ID, user category (admin, user) are now sent in the token.
1. By user registration:
• Check for an existing user is already there.
• There is probably no check for the length of the password and for the correspondence of the user's mail to the mail template from the server side. It needs to be done. (from the front there is but this is not enough)
• You need to connect mail validation.
2. At the entrance, the user:
• There is a check for the correctness of the password.
• There is nothing to prevent brute force. It is necessary to make protection against brute force.
• There is also no password reset form. It also needs to be implemented.
3. Creation of the "selected categories" model:
• The user already exists, but the model needs to be changed: ['id1', 'id2'] -> [{id1, active: false}, {id2, active: true}]. Or somehow, you need to store two states associated with the user (the selected category and the active parameter).
• Updating of data for the user is now performed by a complete overwrite. The "source of truth" is the user agent (browser). With every user action (changed the state of the model from active: true => active: false; added / removed a category), the local model (Redux) is updated and it is sent to the server and completely overwrites the data for the user. The server response is not processed in any way, you need to configure it.
4. Events:
• The delivery of events from the server now happens simply as a list without sorting and already with pagination. It will need to be redone. The server will have to receive a list of active categories and respond (with an array of objects (events) + whether the search for events has ended or if more can be requested). Absolutely standard layout. Ideally, add the number of events that the server sends with each request, so that you can adjust this number without rebuilding the server at the front.
• Also, now there is no mechanism for obtaining the categories selected for the user and their state (active) (at the entrance, for example). It must be implemented as a separate request or sent as a response to the user's input along with a token, for example. Or in another way at the discretion of the contractor.
5. User:
• There is no "saved events" model for the user. It needs to be implemented on the server and given to the user by a separate request, according to which the bookmarks page will be generated. You also need to create a mechanism for adding an event to bookmarks.
• The event model itself seems to be ready and working, but there is no event date there. It will need to be added.
The whole project in the application
Here are the tasks we need help with.
The project is built on MERN, respectively, backend = Node, Express, Mongo. + JWT (json web token). Any user validation goes by the token. This functionality is now fully functional on the backend, but you need to configure token validation for some existing requests and for all new ones.
The user ID, user category (admin, user) are now sent in the token.
1. By user registration:
• Check for an existing user is already there.
• There is probably no check for the length of the password and for the correspondence of the user's mail to the mail template from the server side. It needs to be done. (from the front there is but this is not enough)
• You need to connect mail validation.
2. At the entrance, the user:
• There is a check for the correctness of the password.
• There is nothing to prevent brute force. It is necessary to make protection against brute force.
• There is also no password reset form. It also needs to be implemented.
3. Creation of the "selected categories" model:
• The user already exists, but the model needs to be changed: ['id1', 'id2'] -> [{id1, active: false}, {id2, active: true}]. Or somehow, you need to store two states associated with the user (the selected category and the active parameter).
• Updating of data for the user is now performed by a complete overwrite. The "source of truth" is the user agent (browser). With every user action (changed the state of the model from active: true => active: false; added / removed a category), the local model (Redux) is updated and it is sent to the server and completely overwrites the data for the user. The server response is not processed in any way, you need to configure it.
4. Events:
• The delivery of events from the server now happens simply as a list without sorting and already with pagination. It will need to be redone. The server will have to receive a list of active categories and respond (with an array of objects (events) + whether the search for events has ended or if more can be requested). Absolutely standard layout. Ideally, add the number of events that the server sends with each request, so that you can adjust this number without rebuilding the server at the front.
• Also, now there is no mechanism for obtaining the categories selected for the user and their state (active) (at the entrance, for example). It must be implemented as a separate request or sent as a response to the user's input along with a token, for example. Or in another way at the discretion of the contractor.
5. User:
• There is no "saved events" model for the user. It needs to be implemented on the server and given to the user by a separate request, according to which the bookmarks page will be generated. You also need to create a mechanism for adding an event to bookmarks.
• The event model itself seems to be ready and working, but there is no event date there. It will need to be added.
The whole project in the application