Skip to content

Commit 0ebd951

Browse files
committed
Consolidated READMEs: Moved documentation to root and cleaned up subdirectories
1 parent 67b52ad commit 0ebd951

3 files changed

Lines changed: 112 additions & 147 deletions

File tree

README.md

Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
# Learning Management System (LMS)
2+
3+
## 📌 Project Overview
4+
A comprehensive Learning Management System designed to bridge the gap between teachers and students. This platform features a scalable backend for managing data and a responsive frontend for a seamless user experience. It supports role-based access, course management, assignment tracking, and secure authentication.
5+
6+
## 🚀 Tech Stack
7+
8+
### Frontend
9+
- **Framework:** React (Vite)
10+
- **State Management:** Redux Toolkit
11+
- **Styling:** CSS Modules & Global Variables
12+
- **Routing:** React Router v6
13+
- **HTTP Client:** Axios
14+
15+
### Backend
16+
- **Runtime:** Node.js
17+
- **Framework:** Express.js
18+
- **Database:** PostgreSQL (via Prisma ORM)
19+
- **Authentication:** JWT (JSON Web Tokens)
20+
- **Validation:** Joi
21+
- **Security:** Helmet, CORS, bcrypt
22+
23+
## ✨ Features
24+
25+
### Core
26+
- **User Authentication:** Secure signup/login with JWT.
27+
- **Role-Based Access Control (RBAC):** Strict separation between Teacher and Student roles.
28+
29+
### 👩‍🏫 Teacher Portal
30+
- **Dashboard:** Overview of created courses.
31+
- **Course Management:** Create and update courses.
32+
- **Assignments:** Create assignments and review student submissions.
33+
34+
### 👨‍🎓 Student Portal
35+
- **Dashboard:** View enrolled courses.
36+
- **Enrollment:** Browse and enroll in available courses.
37+
- **Assignments:** Submit work and track progress.
38+
39+
## 📂 Project Structure
40+
```
41+
Learning_management_system/
42+
├── frontend/ # React application
43+
│ ├── src/ # Components, Pages, Redux Store
44+
│ └── ...
45+
├── backend/ # Node.js Express API
46+
│ ├── src/ # Controllers, Routes, Services, Prisma
47+
│ └── ...
48+
└── README.md # Project documentation (this file)
49+
```
50+
51+
## 🛠️ Setup & Installation
52+
53+
### Prerequisites
54+
- Node.js (v18+)
55+
- PostgreSQL (installed and running)
56+
57+
### 1. Backend Setup
58+
Navigate to the backend directory and set up the API and database.
59+
60+
```bash
61+
cd backend
62+
```
63+
64+
**Install Dependencies & Setup Environment:**
65+
You can use the provided setup script or configure manually.
66+
67+
```bash
68+
# Option A: Automatic Setup
69+
./setup.sh
70+
71+
# Option B: Manual Setup
72+
npm install
73+
cp .env.example .env
74+
# Edit .env with your DATABASE_URL and JWT_SECRET
75+
npx prisma migrate dev --name init
76+
```
77+
78+
**Start the Server:**
79+
```bash
80+
npm run dev
81+
```
82+
> The backend runs on `http://localhost:3000`.
83+
84+
### 2. Frontend Setup
85+
Open a new terminal and navigate to the frontend directory.
86+
87+
```bash
88+
cd frontend
89+
```
90+
91+
**Install Dependencies:**
92+
```bash
93+
npm install
94+
```
95+
96+
**Start the Application:**
97+
```bash
98+
npm run dev
99+
```
100+
> The frontend runs on `http://localhost:5173`.
101+
102+
## 🧪 Verification & Usage
103+
1. **Register as a Teacher** to create a test course and assignment.
104+
2. **Register as a Student** (incognito window recommended) to enroll in the course.
105+
3. **Submit an Assignment** as a student and view it as a teacher.
106+
107+
## ✅ Requirements Fulfillment
108+
This project satisfies the core requirements for a scalable LMS platform:
109+
- **Architecture:** Decoupled Frontend and Backend.
110+
- **Security:** Password hashing, JWT auth, and RBAC middleware.
111+
- **Database:** Relational schema with Prisma ORM.
112+
- **Code Quality:** Modular structure, centralized error handling, and input validation.

backend/README.md

Lines changed: 0 additions & 85 deletions
This file was deleted.

frontend/README.md

Lines changed: 0 additions & 62 deletions
This file was deleted.

0 commit comments

Comments
 (0)