Skip to content

Repository files navigation

CampusConnect

CI Java 17 Spring Boot 3.2 License: MIT

A role-aware campus activity platform for discovering clubs, managing events, and tracking registrations.

CampusConnect student dashboard

CampusConnect pairs a Spring Boot REST API with a responsive browser client. Students can explore and join activities, club managers can organize events, and administrators can inspect platform activity from role-specific dashboards.

What you can do

  • Search clubs and browse upcoming events.
  • Register for events and review or cancel registrations.
  • Create clubs and events as a manager, then inspect participant lists.
  • Manage users and view aggregate statistics as an administrator.
  • Explore the API through generated OpenAPI documentation.
  • Start with representative in-memory data—no database setup required.

Architecture

flowchart LR
    Browser[Static web client] -->|JSON over HTTP| Controllers[Spring MVC controllers]
    Controllers --> Services[Role-aware services]
    Services --> Repositories[Spring Data JPA]
    Repositories --> H2[(In-memory H2)]
    Controllers --> OpenAPI[Swagger UI]
Loading

Quick start

You need Java 17+ and Maven 3.9+.

git clone https://github.com/kofdarelli/CampusConnect.git
cd CampusConnect
mvn spring-boot:run

Open http://localhost:8081. API documentation is available at http://localhost:8081/swagger-ui.html, and the H2 console is at http://localhost:8081/h2-console using jdbc:h2:mem:campusconnect.

To build the runnable JAR instead:

mvn clean package
java -jar target/campusconnect-0.0.1-SNAPSHOT.jar

Demo accounts

These credentials are seeded only for local demonstration:

Role Username Password
Administrator admin admin123
Manager alex.manager password
Manager ryan.manager password
Student lina.student password
Student jad.student password
Student john password

Important

Authentication and authorization are demonstration-grade. Role identifiers are checked in the service layer, but the application does not yet use Spring Security, hashed passwords, or production sessions. Do not deploy it with real user data as-is.

API highlights

Capability Endpoint
Login POST /api/auth/login
Search clubs GET /api/clubs?q=
Browse events GET /api/events?clubId=&date=&keyword=
Create an event POST /api/clubs/{clubId}/events?managerId=
Register for an event POST /api/events/{id}/register
View registrations GET /api/students/{studentId}/registrations
List users GET /api/admin/users?adminId=
View statistics GET /api/admin/stats?adminId=

Swagger UI documents the full request and response surface while the app is running.

Technology

Layer Choice
Runtime Java 17
API Spring Boot 3.2, Spring MVC, Bean Validation
Persistence Spring Data JPA, H2
API reference SpringDoc OpenAPI
Client HTML, CSS, and vanilla JavaScript
Build Maven

Project layout

src/main/java/com/campusconnect/
├── controller/   REST endpoints
├── dto/          Request and response models
├── model/        JPA entities and roles
├── repository/   Spring Data repositories
└── service/      Business rules and role checks

src/main/resources/
├── static/       Browser client
└── application.properties

Verification

mvn verify

CI runs the same Maven verification on every push and pull request to main.

Contributing and security

Read CONTRIBUTING.md before opening a pull request. Use the issue forms for reproducible bugs and focused feature proposals. Please report security concerns privately as described in SECURITY.md.

CampusConnect is available under the MIT License.

About

Role-aware Spring Boot campus activity platform with a responsive web dashboard.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages