A modern academic management platform for students, teachers & administrators 🚀
AcademiQ is a full-stack college management system designed to streamline academic operations for institutions:
- ✅ Manage student information, enrollment & profiles
- ✅ Organize courses, subjects & department timetables
- ✅ Handle marks, grades & paper submissions
- ✅ Manage teachers, staff roles & permissions
- ✅ Secure authentication & authorization using JWT
- ✅ Expose REST APIs for frontend integration
- 🔐 Secure Login with JWT & role-based access
- 🎓 Student Enrollment & course assignment
- 📚 Subject, Paper & Marks Management
- 🧑🏫 Teacher & Admin Dashboards
- 🕒 Department Timetables & Scheduling
- ⚡ REST API powered by Spring Boot
- 🐳 Dockerized for seamless deployment
- Backend: Java 17+, Spring Boot 3.x, Hibernate (JPA)
- Database: MariaDB
- Authentication: JWT (JSON Web Tokens)
- Deployment: Docker, Render, or any PaaS
- Frontend (planned): React or Vue.js
- Purpose: Secure the system and ensure only authorized users can access certain data.
- Mechanism:
- Users (Students, Staff, Admins) login with username/password.
- On successful login, the system generates a JWT (JSON Web Token).
- This token is sent with every API request to verify identity and role.
- Roles & Permissions:
ADMIN→ Full accessSTAFF→ Manage courses, enter marksSTUDENT→ View own profile & grades
- Purpose: Maintain detailed records for all users.
- Mechanism:
- Admins can create, update, or delete users.
- Profiles stored in MariaDB via JPA/Hibernate.
- Purpose: Handle course creation, student enrollment, and assignments.
- Mechanism:
- Courses assigned to staff. Students can enroll in multiple courses.
- Many-to-many relationships managed through Enrollment table.
- Purpose: Track student performance.
- Mechanism:
- Teachers enter marks via API or admin interface.
- Marks stored in database linked to student and course entities.
- Controllers: Handle HTTP requests.
- Services: Implement business logic.
- Repositories: Handle database operations via JPA.
- Security: Sensitive endpoints protected by JWT & role checks.
- Entities: Users, Students, Staff, Courses, Enrollments, Marks.
- Relationships: Staff → Courses (One-to-Many), Students ↔ Courses (Many-to-Many).
- Persistence: Managed via Hibernate/JPA.
- JWT Tokens for stateless authentication.
- CORS configured for frontend access.
- Environment variables store sensitive info.
- Dockerized for easy deployment.
- Compatible with cloud platforms and VPS.
- Can scale horizontally with multiple containers.
- User sends request → Controller.
- Controller validates JWT → checks user role.
- Controller calls Service Layer → applies business rules.
- Service calls Repository Layer → interacts with MariaDB.
- Response returned → Frontend receives JSON data.
- Java 17+
- Maven 3+
- MariaDB running locally or in Docker
# Clone repository
git clone https://github.com/Rj979/AcademiQ.git
cd AcademiQ/academiq-java-api
# Build JAR
./mvnw clean package -DskipTests
# Run application
./mvnw spring-boot:run# Build Docker image
docker build -t academiq-api .
# Run container
docker run -p 8080:8080 --env-file .env academiq-apiPOST /api/auth/login→ User login & get JWTPOST /api/auth/register→ Register student/staffGET /api/students→ List all students (admin only)POST /api/courses→ Add a new course
(Full API documentation coming soon)
- Fork the repository
- Create a feature branch:
git checkout -b feature-x - Commit changes:
git commit -m "Add feature x" - Push & create a Pull Request
MIT License © 2025 Rj979