Skip to content

Val242/campusconnect

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

96 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CampusConnect – University Management Backend System.

CampusConnect is a backend application that implements a real-world university management system. It models core academic and administrative operations found in higher education institutions, with a strong focus on correctness, data integrity, and clean backend architecture.

Overview.

The system manages users, authentication, and academic structures such as faculties, departments, courses, students, and instructors. It is designed to reflect real institutional workflows while enforcing proper entity relationships, role-based access control, and transactional consistency.

CampusConnect is not a simple CRUD application. It simulates how real university systems are structured and managed at the backend level.

Motivation

This project was built to practice and demonstrate real-world backend engineering concepts, including:

Authentication and authorization flows

Role-based access control

Proper entity relationship modeling

Transaction management and data integrity

Clean separation of concerns using DTOs and mappers

The goal was to move beyond tutorials and design a system that behaves like a production-grade backend.

Core Entities

User

StudentProfile

InstructorProfile

Faculty

Department

Course

All entities are modeled to mirror real-world university structures and dependencies.

Authentication & Authorization

The User entity is the central entry point of the system.

Every user must be registered and authenticated before accessing protected resources.

Authentication is handled using JWT-based security.

Roles are defined using enumerations:

STUDENT

INSTRUCTOR

ADMIN

Depending on the assigned role, a user gives rise to either a StudentProfile or an InstructorProfile.

Entity Relationships

A User can be associated with one StudentProfile or one InstructorProfile.

Student and Instructor profiles are fully dependent on the User entity.

Profiles are created during registration using setUser(user) and persisted via the User repository.

This design ensures:

A single source of truth for authentication

Strong referential integrity

Clear ownership of dependent entities

Clean and maintainable domain modeling

Admin Privileges

Users with the ADMIN role have elevated permissions and can:

Perform full CRUD operations on all entities

Manage faculties, departments, and courses

Assign instructors, heads of department, and academic roles

Oversee system-wide configurations

Features Implemented

Role-based authentication (Admin, Student, Instructor)

Faculty management (create, update, assign dean, retrieve)

Department management

Course management

Student and Instructor profile management

Secure entity relationships and validations

DTO-based API responses to control data exposure

Proper handling of transactional updates

Key Design Decisions

The User entity acts as the aggregate root for authentication and authorization.

StudentProfile and InstructorProfile cannot exist without a User.

DTOs are used to prevent lazy-loading issues and avoid leaking persistence-layer entities.

Referential integrity is enforced both at the application level and the database level.

Updates that modify relationships are handled within proper transaction boundaries.

Tech Stack

Java

Spring Boot

Spring Security

JPA / Hibernate

RESTful APIs

PostgreSQL

JWT-based authentication

Running the Project

Configure PostgreSQL credentials in application.properties

Run the application using Maven

Access the API at http://localhost:8080/api/v1

Future Improvements

Course enrollment and academic session tracking

Level-based course visibility and progression rules

Audit logging for administrative actions

Pagination and filtering for large datasets

Fine-grained permission policies

Project Focus

CampusConnect demonstrates:

Real-world backend system design

Proper use of entity relationships

Role-based access control

Transactional integrity

Scalable and maintainable backend architecture

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages