A Learning Management System (LMS) built using the MERN Stack with role-based access for Managers and Students, featuring lesson management, file uploads, and responsive UI.
sinau-mern aims to simplify digital learning with:
- Managers: Full control over lessons and content.
- Students: Easy access to learning materials anytime, anywhere.
- Lesson Management (CRUD): Add, edit, delete, and view lessons.
- File Upload: Attach PDFs, images, or other learning materials.
- Role-Based Access:
- Manager: Manage all content.
- Student: Access materials (coming soon).
- Responsive UI: Optimized with TailwindCSS for all devices.
| Technology | Usage |
|---|---|
| React.js | Frontend framework |
| Node.js | Backend runtime |
| Express.js | Backend framework |
| MongoDB | Database |
| TailwindCSS | Styling & responsiveness |
| JWT | Authentication |
| Multer | File upload handling |
| Dashboard (Manager) | Lesson List (Student) |
|---|---|
| Add screenshot here | Add screenshot here |
-
Clone the repository
git clone https://github.com/NaufalArdian12/sinau-mern.git cd sinau-mern -
Install dependencies
cd backend npm install cd ../frontend npm install
-
Set environment variables in
backend/.env:PORT=5000 MONGO_URI=mongodb://localhost:27017/sinau-mern JWT_SECRET=your_jwt_secret -
Run the backend
cd backend npm run dev -
Run the frontend
cd frontend npm start
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/lessons |
Retrieve all lessons |
| POST | /api/lessons |
Add a new lesson |
| PUT | /api/lessons/:id |
Update a lesson |
| DELETE | /api/lessons/:id |
Delete a lesson |
- Student role access
- Authentication & Authorization (Login/Register)
- Discussion & comments feature
- Deployment on Vercel/Render/DigitalOcean
Contributions are always welcome!
- Fork the repository
- Create a new branch:
git checkout -b feature-name - Commit changes:
git commit -m "Add new feature" - Push the branch:
git push origin feature-name - Open a Pull Request
This project is licensed under the MIT License.
- Author: Naufal Ardian
- Email: (your email here)
- LinkedIn: (your LinkedIn here)