ClassCraft is a modern, full-stack web application designed to streamline university academic management. It provides a comprehensive solution for administrators, professors, and students to manage and access academic information, schedules, and resources in real-time.
- Role-based access control (Admin, Professor, Student)
- Secure JWT authentication
- User profile management
- Password recovery system
- Department and Program (Filiere) management
- Course and module organization
- Student group management
- Professor assignment to courses
- Interactive timetable management
- Classroom allocation
- Conflict detection and prevention
- Real-time schedule updates
- Generate PDF reports and timetables
- Export data to Excel
- Customizable report templates
- Batch export capabilities
- Framework: Spring Boot 3.x
- Security: Spring Security with JWT
- Database: MySQL 8+
- ORM: Spring Data JPA (Hibernate)
- Build Tool: Maven
- Java Version: 17+
- Framework: React 18+ with TypeScript
- Build Tool: Vite
- UI Components: Material-UI
- State Management: React Query
- HTTP Client: Axios
- PDF Generation: @react-pdf/renderer, jsPDF
- Excel Export: xlsx
- Styling: Tailwind CSS
- Java Development Kit (JDK) 17 or higher
- Node.js 18 or higher
- MySQL 8.0 or higher
- Maven 3.8+
- Git
-
Clone the repository
git clone https://github.com/ME17FD/Class-Craft.git cd Class-Craft -
Configure Database
- Create a MySQL database named
classcraftdb - Update
src/main/resources/application.properties:spring.datasource.url=jdbc:mysql://localhost:3306/classcraftdb spring.datasource.username=your_username spring.datasource.password=your_password
- Create a MySQL database named
-
Build and Run
./mvnw clean install ./mvnw spring-boot:run
The backend will be available at
http://localhost:8080
-
Navigate to frontend directory
cd front -
Install dependencies
npm install
-
Start development server
npm run dev
The frontend will be available at
http://localhost:5173
- API documentation is available at
http://localhost:8080/swagger-ui.htmlwhen running the backend - Includes detailed endpoint descriptions, request/response examples, and authentication requirements
- JWT-based authentication
- Role-based access control
- Password encryption using BCrypt
- CORS configuration for secure frontend-backend communication
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Mehdi FAID - Initial work - ME17FD
- Special thanks to all contributors who have helped shape ClassCraft
- Built with inspiration from modern educational management systems
- Powered by the Spring Boot and React communities
For additional information or support, please open an issue in the repository.