Skip to content

A course management admin panel built with Node.js, Express, MongoDB, and EJS, following the MVC architecture. Features include CRUD operations, search functionality, server-side rendering, and a clean, scalable project structure.

License

Notifications You must be signed in to change notification settings

Mohammad-JBM/nodejs-ejs-admin-panel

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎓 Course Management Panel (Node.js + EJS)

A clean and practical Course Management Admin Panel built with Node.js, Express, MongoDB, and EJS, following a well-structured MVC architecture.

This project is designed to demonstrate real-world backend development, server-side rendering, and clean project organization, making it a strong portfolio piece for backend and full‑stack roles.


✨ Why This Project?

This panel simulates a real admin dashboard used to manage educational content. It focuses on:

  • Writing scalable backend logic
  • Structuring projects using MVC
  • Handling errors and validations properly
  • Rendering dynamic views on the server (SSR)
  • Building production‑style CRUD workflows

🚀 Features

  • ✅ Create new courses
  • ✏️ Edit existing courses
  • 🗑️ Delete courses
  • 🔍 Search courses by title (case‑insensitive)
  • 🧩 Server‑side rendering with EJS
  • 🧱 Clean MVC architecture
  • 🗄️ MongoDB integration using Mongoose
  • ⚠️ Centralized error handling & validation
  • 🌍 RTL layout (Persian UI support)

🧠 Technologies Used

  • Node.js – JavaScript runtime
  • Express.js – Web framework
  • MongoDB – NoSQL database
  • Mongoose – ODM for MongoDB
  • EJS – Server‑side templating engine
  • Express Session & Flash – User‑friendly error handling
  • Custom CSS – UI styling
  • MVC Architecture – Scalable structure

📁 Project Structure

├── configs
│   └── db.js                # Database connection
├── controllers
│   └── v1
│       └── course.js        # Course business logic
├── models
│   └── course.js            # Course schema
├── routers
│   └── v1
│       └── course.js        # Course routes
├── public
│   ├── css
│   ├── images
│   └── js
├── views
│   ├── partials             # Shared EJS components
│   └── index.ejs            # Main view
├── .env
├── app.js                   # App configuration
├── server.js                # Server bootstrap
└── package.json

🔎 Course Search Logic

Courses can be searched using a case‑insensitive keyword query:

title: { $regex: keyword, $options: "i" }

This allows flexible searching without worrying about letter casing.


⚙️ Installation & Setup

1️⃣ Clone the repository

git clone https://github.com/your-username/course-management-panel-nodejs.git

2️⃣ Install dependencies

npm install

3️⃣ Create a .env file

PORT=3000
MONGO_URI=your_mongodb_connection_string

4️⃣ Run the project (development mode)

npm run dev

The application will be available at:

http://localhost:3000/courses

🖥️ Project Preview

Course Management Panel Preview

Course Management Admin Panel
Built with Node.js, Express, MongoDB & EJS


📌 Notes & Limitations

  • 🔐 Authentication and user management are not included
  • 🎯 The project focuses on CRUD operations, MVC structure, and SSR
  • 🧪 Ideal as a learning project or portfolio showcase

🚧 Possible Future Improvements

  • Add authentication & authorization (JWT / Session‑based)
  • Role‑based access control (Admin / Editor)
  • Pagination & sorting
  • REST API version alongside EJS views
  • Unit & integration tests

👨‍💻 Author

Mohammad‑JBM Backend Developer | Node.js

📌 Passionate about building scalable backend systems and real‑world web applications


⭐ If you find this project useful, consider giving it a star!

About

A course management admin panel built with Node.js, Express, MongoDB, and EJS, following the MVC architecture. Features include CRUD operations, search functionality, server-side rendering, and a clean, scalable project structure.

Topics

Resources

License

Stars

Watchers

Forks

Contributors