Skip to content
laxman-thedevPublic

About

A full-stack Notes App built with Node.js, Express, MongoDB, and EJS. Features Google OAuth login, note CRUD, search, pagination, and session-based authentication.

Topics

Resources

Contributing

Stars

2 stars

Watchers

0 watching

Forks

Repository files navigation

GitHub repo size GitHub forks GitHub stars GitHub issues

📝 Notes App

A full-stack Note-Taking Web App built with Node.js, Express, MongoDB, and EJS, featuring Google OAuth login, session-based access, and a responsive UI.


🔑 Features

  • 🔐 Google OAuth Authentication (via Passport.js)
  • 🗒️ Create, Edit, and Delete Notes
  • 🔍 Search notes by title or content
  • 📃 Pagination support
  • 🧠 EJS templating with Bootstrap 5 layout
  • 💾 Session storage with MongoDB using connect-mongo
  • ❌ Custom 404 error page
  • 🧩 Dynamic layout switching based on login status

🛠️ Tech Stack

Layer Technology
Frontend EJS, Bootstrap 5, Custom CSS
Backend Node.js, Express.js
Auth Passport.js (Google OAuth 2.0)
Database MongoDB + Mongoose
Session Store express-session + connect-mongo

🚀 Getting Started

1. Clone the Repository

git clone https://github.com/laxman-goud/notes-app.git
cd notes-app

2. Install Dependencies

npm install

3. Environment Setup

Create a .env file in the root directory using the provided .env.example:

GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret
GOOGLE_CALLBACK_URL=http://localhost:5000/google/callback
MONGO_URI=your_mongodb_connection_string
SESSION_SECRET=your_session_secret

4. Run the Application

npm run dev

Visit: http://localhost:5000


📁 Folder Structure

notes-app/
├── app.js                  # Entry point
├── .env.example            # Sample environment variables
├── public/                 # Static files (CSS, images)
├── server/
│   ├── config/             # DB connection
│   ├── controllers/        # Route handlers
│   ├── middleware/         # Authentication middleware
│   ├── models/             # Mongoose models
│   └── routes/             # Express routes
├── views/                  # EJS templates
│   ├── layouts/            # Layout templates
│   ├── partials/           # Header/Footer includes
│   ├── dashboard/          # Dashboard views
│   └── 404.ejs             # Custom 404 page

🌐 Deployment

You can deploy this app on:

  • Render
  • Vercel (for frontend only + API)
  • Heroku

Make sure to update your .env GOOGLE_CALLBACK_URL to match your deployed URL (e.g. https://yourapp.onrender.com/google/callback).


🤝 Contributing

Contributions are welcome! 🎉

Feel free to fork this project, open an issue, or submit a pull request with your improvements.
Please make sure your changes are clear, concise, and follow the contributing guidelines.


🙋‍♂️ Author

Made with ❤️ by Laxman Goud

About

A full-stack Notes App built with Node.js, Express, MongoDB, and EJS. Features Google OAuth login, note CRUD, search, pagination, and session-based authentication.

Topics

Resources

Contributing

Stars

2 stars

Watchers

0 watching

Forks

Contributors

Languages