Authentication Project
This project is a full-stack web application that allows users to securely register, log in, and manage their personal notes. Each user has an individual account, and upon logging in, they can add, view, and delete notes. The app ensures that each user can only access their own notes and provides a clean and simple interface for ease of use.

Note: The server may take a few moments to start up when accessing the live demo. Please be patient if there's a slight delay.
Key Features
- User Authentication: Secure registration and login using encrypted passwords
- Note Management: Users can create, view, and delete personal notes
- Authorization: Protected routes ensure only authenticated users can access or modify notes
- Responsive Design: Simple and user-friendly interface built with EJS templates
Technologies Used
- Node.js & Express.js (Backend)
- MongoDB & Mongoose (Database)
- EJS (Frontend templating engine)
- Express sessions & bcrypt (Authentication)
- CSS for styling
Project Gallery




Challenges and Solutions
One of the main challenges was implementing secure user authentication and ensuring that only authorized users could access personal data. This was achieved by using bcrypt for password encryption and Express sessions for managing user sessions, ensuring that each user could only access their own notes.
Future Improvements
- Integrate user authentication with OAuth for social media logins
- Enhance the note-taking functionality with rich-text editing
- Improve the UI for better mobile responsiveness
- Add automated backup and restore features for user data
Reflection
This project helped me deepen my understanding of authentication and user management in web applications. I learned how to use session-based authentication to secure routes and protect sensitive data. Implementing modular code for scalability was another key takeaway, as it allowed for future improvements without disrupting the core functionality.