A comprehensive, modern Course Management System built with React.js and Spring Boot, designed to streamline educational processes for academic institutions.
Sikhshan is a full-stack web application that provides a centralized platform for managing educational content, assignments, quizzes, and communication between students, faculty, and administrators. The system features role-based access control, real-time communication, and comprehensive course management capabilities.
- Admin: User management and system oversight
- Faculty: Course creation, assignment/quiz management, grading, student communication
- Student: Course enrollment, assignment submission, quiz taking, grade tracking
- Create and manage courses with detailed descriptions
- Upload course materials and attachments
- Track student enrollments and progress
- Course calendar integration
- Create assignments with file attachments
- Set due dates and total points
- Grading with detailed feedback
- Progress tracking and analytics
- Create interactive quizzes with multiple question types
- Set time limits and attempt restrictions
- Automated grading and instant feedback
- Detailed performance analytics
- Built-in chat system for instant messaging
- Course-based and general discussion groups
- Message history
- Academic calendar with course schedules
- Personal event management
- Shared institutional events
- Comprehensive grade tracking
- GPA calculation with letter grades
- Performance analytics and insights
- Customizable grading scales
Before running this application, ensure you have the following installed:
- Node.js (v16 or higher)
- npm (v8 or higher)
- Java (JDK 17 or higher)
- Maven (v3.6 or higher)
- MySQL (v8.0 or higher)
- Git
git clone https://github.com/sudip6164/sikhshan-new-repo.git
cd sikhshan-new-repocd backend- Create a
.envfile in the backend directory:
touch .env- Add the following environment variables to
.env:
JWT_SECRET=your_jwt_secret_key_here
JWT_EXPIRATION=86400000
CLOUDINARY_CLOUD_NAME=your_cloudinary_cloud_name
CLOUDINARY_API_KEY=your_cloudinary_api_key
CLOUDINARY_API_SECRET=your_cloudinary_api_secretNote: The database sikhshan_db will be created automatically when you first run the application. You can also change the name from application.properties.
Option 1: Using Maven Wrapper (Recommended)
./mvnw spring-boot:runOption 2: Using IDE
- Open the project in Spring Tool Suite, IntelliJ IDEA, or VS Code
- Run the main class:
com.sikhshan.SikhshanApplication
The backend will start on http://localhost:8081
cd frontendnpm installnpm startThe frontend will start on http://localhost:3000
sikhshan-new-repo/
├── backend/ # Spring Boot Backend
│ ├── src/main/java/com/sikhshan/
│ │ ├── config/ # Configuration classes
│ │ ├── controller/ # REST controllers
│ │ ├── dto/ # Data Transfer Objects
│ │ ├── model/ # JPA entities
│ │ ├── repository/ # Data repositories
│ │ ├── service/ # Business logic
│ │ └── utility/ # Utility classes
│ ├── src/main/resources/
│ │ └── application.properties # Application configuration
│ ├── .env # Environment variables
│ └── pom.xml # Maven dependencies
├── frontend/ # React.js Frontend
│ ├── public/ # Static files
│ ├── src/
│ │ ├── api/ # API service functions
│ │ ├── components/ # Reusable components
│ │ ├── contexts/ # React contexts
│ │ ├── pages/ # Page components
│ │ └── utils/ # Utility functions
│ └── package.json # Node.js dependencies
└── README.md # This file
- Spring Boot 3.x - Main framework
- Spring Data JPA - Database abstraction
- MySQL - Primary database
- JWT - Token-based authentication
- Maven - Dependency management
- Cloudinary - File storage and management
- React.js 18 - UI framework
- React Router - Client-side routing
- Axios - HTTP client
- Material-UI - UI component library
- Tailwind CSS - Utility-first CSS framework
- WebSocket - Real-time communication
- Swagger/OpenAPI - API documentation
- Postman - API testing
- Git - Version control
Once the backend is running, access the API documentation at:
http://localhost:8081/swagger-ui.html
- Login:
- Admin Dashboard:
- Faculty Dashboard:
- Student Dashboard:
- Course Creation: Intuitive form for creating new courses
- Course Details: Comprehensive view with materials, assignments, and students
- Assignment Management: Create and grade assignments with file uploads
- Chat Interface: Real-time messaging between users
- Calendar Integration: Academic calendar with events and deadlines
- Quiz Creation: Interactive quiz builder with multiple question types
- Assignment Submission: File upload
- Grade Tracking: Detailed grade analytics and performance insights
Sikhshan - Empowering Education Through Technology 🎓