Welcome to the List Management Application! This project was created as a homework assignment for Unicorn University 🦄 and offers a comprehensive solution for managing lists and items, built with modern web technologies. The application is divided into two main parts:
- Backend: A robust and secure RESTful API built with Express.js and MongoDB.
- Frontend: An interactive user interface crafted with Next.js and React.
-
/backend
Contains all server-side code. For more information and installation instructions, visit the README in the backend folder. -
/frontend
Contains all client-side code. For more information and installation instructions, visit the README in the frontend folder.
- Create and Edit Lists: Easily create new lists, rename, archive, or delete them.
- Manage Items: Add items to lists, mark them as resolved/unresolved, and remove them.
- Filtering and Statistics: Filter items by status and view statistics through charts.
- Registration and Login: Secure user registration and login with encrypted passwords.
- Profile Updates: Update profile information including bio, status, and profile picture.
- Password Change: Securely change your account password.
- JWT Authentication: Secure authentication using access and refresh tokens.
- Attack Protection: Rate limiting, secure HTTP headers, and input sanitization.
- Real-time Feedback: Instant success and error notifications with loading indicators.
- Backend: Node.js, Express.js, MongoDB, Mongoose, JWT, Joi, Winston.
- Frontend: Next.js, React, Context API, i18next, Chart.js.