Skip to content

sudip6164/sikhshan_LMS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

91 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sikhshan - Course Management System

A comprehensive, modern Course Management System built with React.js and Spring Boot, designed to streamline educational processes for academic institutions.

📋 About

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.

✨ Features

🎓 Role-Based Access Control

  • Admin: User management and system oversight
  • Faculty: Course creation, assignment/quiz management, grading, student communication
  • Student: Course enrollment, assignment submission, quiz taking, grade tracking

📚 Course Management

  • Create and manage courses with detailed descriptions
  • Upload course materials and attachments
  • Track student enrollments and progress
  • Course calendar integration

📝 Assignment System

  • Create assignments with file attachments
  • Set due dates and total points
  • Grading with detailed feedback
  • Progress tracking and analytics

🧠 Quiz System

  • Create interactive quizzes with multiple question types
  • Set time limits and attempt restrictions
  • Automated grading and instant feedback
  • Detailed performance analytics

💬 Real-Time Communication

  • Built-in chat system for instant messaging
  • Course-based and general discussion groups
  • Message history

📅 Calendar Integration

  • Academic calendar with course schedules
  • Personal event management
  • Shared institutional events

📊 Grading System

  • Comprehensive grade tracking
  • GPA calculation with letter grades
  • Performance analytics and insights
  • Customizable grading scales

🛠️ Prerequisites

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

🚀 Installation & Setup

1. Clone the Repository

git clone https://github.com/sudip6164/sikhshan-new-repo.git
cd sikhshan-new-repo

2. Backend Setup

2.1. Navigate to Backend Directory

cd backend

2.2. Change application.properties.example in src/main/resources to applicatipn.properties

2.3. Configure Environment Variables

  1. Create a .env file in the backend directory:
touch .env
  1. 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_secret

Note: The database sikhshan_db will be created automatically when you first run the application. You can also change the name from application.properties.

2.4. Run the Backend

Option 1: Using Maven Wrapper (Recommended)

./mvnw spring-boot:run

Option 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

3. Frontend Setup

3.1. Navigate to Frontend Directory

cd frontend

3.2. Install Dependencies

npm install

3.3. Run the Frontend

npm start

The frontend will start on http://localhost:3000

📁 Project Structure

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

��️ Technologies Used

Backend

  • 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

Frontend

  • 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

Development Tools

  • Swagger/OpenAPI - API documentation
  • Postman - API testing
  • Git - Version control

📚 API Documentation

Swagger UI

Once the backend is running, access the API documentation at:

http://localhost:8081/swagger-ui.html

📸 Screenshots

Dashboard Views

  • Login:
image
  • Admin Dashboard:
image image
  • Faculty Dashboard:
image image
  • Student Dashboard:
image

Course Management

  • Course Creation: Intuitive form for creating new courses
image image
  • Course Details: Comprehensive view with materials, assignments, and students
image image
  • Assignment Management: Create and grade assignments with file uploads
image image image

Communication

  • Chat Interface: Real-time messaging between users
image
  • Calendar Integration: Academic calendar with events and deadlines
image

Assessment Tools

  • Quiz Creation: Interactive quiz builder with multiple question types
image image
  • Assignment Submission: File upload
image image
  • Grade Tracking: Detailed grade analytics and performance insights
image

Sikhshan - Empowering Education Through Technology 🎓

About

A comprehensive, modern Course Management System built with React.js and Spring Boot, designed to streamline educational processes for academic institutions.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages