Welcome to Notezy, a simple and intuitive web-based note-taking platform built with Node.js, Express, MongoDB, and EJS templating. The app allows users to sign up, log in, create, view, search, and delete notes β all with a clean UI and user-friendly dashboard.
π Proudly selected for SSoC'25
π Maintained by Soumya Srivastav (Project Admin)
π‘ Want to try it live? Deploying soon on Vercel/Render β Stay tuned!
- π€ User Authentication (Register/Login with secure sessions)
- βοΈ Create, Edit & Delete Notes
- π Search Notes by title/content
- π§Ύ Clean & Responsive UI with EJS Templates
- π§ MVC Architecture with Controllers, Routes, and Middleware
- π Well-structured codebase for scalability
- β
Protected routes using middleware (
checkAuth.js) - βοΈ MongoDB integration with Mongoose schemas
| Tech | Description |
|---|---|
| Node.js | JavaScript runtime |
| Express.js | Web framework |
| MongoDB | NoSQL Database |
| Mongoose | ODM for MongoDB |
| EJS | Embedded JavaScript |
| Bootstrap | Frontend Styling |
| express-session | Session management |
Notezy/
βββ app.js
βββ package.json
βββ .env
βββ public/
β βββ css/
β β βββ main.css
β βββ img/
βββ server/
β βββ controllers/
β β βββ mainController.js
β β βββ dashboardController.js
β βββ middleware/
β β βββ checkAuth.js
β βββ models/
β β βββ User.js
β β βββ Notes.js
β βββ routes/
β βββ auth.js
β βββ dashboard.js
β βββ index.js
βββ views/
β βββ index.ejs
β βββ about.ejs
β βββ 404.ejs
β βββ layouts/
β β βββ front-page.ejs
β β βββ main.ejs
β β βββ dashboard.ejs
β βββ partials/
β β βββ header.ejs
β β βββ footer.ejs
β β βββ header_dashboard.ejs
β βββ dashboard/
β βββ add.ejs
β βββ index.ejs
β βββ search.ejs
β βββ view-notes.ejs
- Clone the repository
git clone https://github.com/soumya813/Notes-App.git
cd Notes-App- Install Dependencies
npm install- Set Up Environment Variables
Refer to CONTRIBUTING.md to find out how to get the keys.
Create a .env file in the root directory and add:
MONGODB_URI=your_mongodb_connection_string
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret
GOOGLE_CALLBACK_URL=http://localhost:5000/google/callback
PORT=5000- Run the App
npm startThe app will run at http://localhost:5000
Set these environment variables in your hosting provider:
# Database (Required)
MONGODB_URI=mongodb+srv://username:password@cluster.mongodb.net/notes-app
# Google OAuth (Required)
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret
GOOGLE_CALLBACK_URL=https://yourdomain.com/google/callback
# Security (Required for production)
SESSION_SECRET=your_super_secret_random_string_here
NODE_ENV=production
PORT=5000
# Optional Features
HUGGING_FACE_API=your_hugging_face_token
REDIS_URL=redis://localhost:6379
DOMAIN=yourdomain.com
# Email (Optional)
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_USER=your_email@gmail.com
SMTP_PASS=your_app_password
SMTP_FROM=noreply@yourdomain.com- Install Heroku CLI
- Login and create app:
heroku login
heroku create your-notes-app- Set environment variables:
heroku config:set NODE_ENV=production
heroku config:set MONGODB_URI=your_mongodb_uri
heroku config:set SESSION_SECRET=your_secret
# ... add all other required vars- Deploy:
git add .
git commit -m "Deploy to production"
git push heroku main- Build image:
docker build -t notes-app .- Run container:
docker run -d \
-p 5000:5000 \
-e NODE_ENV=production \
-e MONGODB_URI=your_mongodb_uri \
-e SESSION_SECRET=your_secret \
--name notes-app \
notes-app- Connect your GitHub repository
- Set environment variables in the dashboard
- Use build command:
npm install - Use start command:
npm start
This app includes collaborative editing powered by Socket.IO:
- Live updates while multiple authenticated users view the same note
- Presence and typing indicators
- Changes sync instantly; saving persists the note
It runs over the same Express server and reuses session authentication. No extra setup is required for local development.
π’ This project is officially part of SSoC'25 (Social Summer of Code 2025)!
We β€οΈ contributions!
- Fork the repo
- Create a new branch:
git checkout -b feature-name - Make your changes and commit
- Push and submit a PR
- Wait for review π
Please follow our Code of Conduct and Contributing Guidelines (coming soon).
| Name | GitHub | Role |
|---|---|---|
| Soumya Srivastav | @soumya813 | Project Admin |
This project is licensed under the MIT License. See LICENSE for details.
