NoteNexus is a full-stack web application for creating, managing, and organizing notes with features like archiving, soft deletion, and role-based access control.
Both frontend & backend are deployed on Vercel. For live project, Click here
-
Authentication & Authorization
- User registration and login
- Guest user access with auto-logout after 10 minutes
- JWT-based authentication with secure HTTP-only cookies
- Role-based access control (Regular users vs Guest users)
-
Note Management
- Create, read, update, and delete notes
- Archive important notes
- Soft deletion with recycle bin
- Search functionality inside notes
- Infinite scroll pagination
-
User Profile
- Update profile information
- Change password
- Delete account with data cleanup
-
UI/UX
- Responsive design for all devices
- Modern animations using Framer Motion
- Toast notifications
- Loading states and error handling
- Dark theme optimized
- React + TypeScript
- Vite for build tooling
- TailwindCSS for styling
- Framer Motion for animations
- Axios for API requests
- React Router v6
- React Toastify
- Node.js + Express
- MongoDB with Mongoose
- JWT for authentication
- Bcrypt for password hashing
- Zod for validation
- Node-cron for scheduling tasks
- Clone the repository
git clone https://github.com/yourusername/notenexus.git
cd notenexus- Install dependencies
cd server npm install
cd ../client npm install
- Environment Setup
Create .env files in both client and server directories:
For server (.env):
PORT=3000
MONGO_URI=your_mongodb_uri
JWT_SECRET=your_jwt_secret
GUEST_JWT_SECRET=your_guest_jwt_secret
CLIENT_URL=http://localhost:5173
NODE_ENV=development
For client (.env):
VITE_API_BASE_URL=http://localhost:3000/api/v1
VITE_ENV=development
-POST /api/v1/auth/register - Register new user
-POST /api/v1/auth/login - User login
-POST /api/v1/auth/logout - User logout
-POST /api/v1/auth/guest-signin - Guest sign in
-GET /api/v1/auth/check-auth - Verify auth status
GET /api/v1/notes - Fetch all notes
POST /api/v1/notes/addnotes - Create new note
DELETE /api/v1/notes/delete/:noteId - Move note to bin
POST /api/v1/notes/archive/:noteId - Archive note
GET /api/v1/profile/:username - Get user profile
PUT /api/v1/profile/edit/:username - Update profile
PUT /api/v1/profile/:username/change-password - Change password
DELETE /api/v1/profile/:username/delete-profile - Delete profile
The application is configured for deployment on Vercel:
- Frontend: Deploy the client directory
- Backend: Deploy the server directory
- Set up environment variables in Vercel dashboard
- Configure build commands and output directories
This project is licensed under the MIT License - see the LICENSE file for details.
PRs are welcome. When submitting a PR, please include a clear description of your changes, reference related issues if applicable, and ensure all tests pass. Use concise and informative commit messages.
For questions or collaboration, reach out to me on Twitter/x