Skip to content

Senter-7/CampusForge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

50 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

CampusForge - Academic Collaboration Platform

A full-stack web application designed to help college students seamlessly form teams, manage projects, and share ideas within their academic community.

Features

User Management

  • JWT-based authentication and authorization
  • Role-based access control (Student, Professor, Admin)
  • User profiles with skills, interests, and availability
  • University-based user organization

Project Management

  • Create and manage collaborative projects
  • Project status tracking (Open, Ongoing, Completed)
  • Skill-based project requirements
  • Project member management with roles
  • Collaboration requests system

Teammate Discovery

  • Advanced search and filtering
  • Filter by skills, major, year, and availability
  • Online/offline status tracking
  • User rating and project count display

Course & Professor Rating

  • Rate professors and courses (1-5 stars)
  • Written reviews and comments
  • Average rating calculations
  • Public rating display

Task Management

  • Task creation and assignment
  • Task status tracking
  • Priority levels
  • Task comments and discussions

Real-time Communication

  • WebSocket-based messaging
  • Project-based group chats
  • Real-time message delivery

Notifications

  • User notifications
  • Read/unread status tracking

πŸ› οΈ Technologies

Backend

  • Java 17
  • Spring Boot 3.5.5
  • Spring Security (JWT Authentication)
  • Spring Data JPA
  • MySQL
  • Maven
  • WebSocket

Frontend

  • React 18
  • TypeScript
  • Vite
  • React Router
  • Axios
  • React Hook Form
  • TanStack Query
  • Tailwind CSS
  • Radix UI
  • Shadcn UI

Project Structure

CampusForge/
β”œβ”€β”€ backend/                 # Spring Boot backend
β”‚   β”œβ”€β”€ src/main/java/
β”‚   β”‚   └── com/campusconnect/
β”‚   β”‚       β”œβ”€β”€ controller/  # REST API endpoints
β”‚   β”‚       β”œβ”€β”€ service/     # Business logic
β”‚   β”‚       β”œβ”€β”€ repository/  # Data access
β”‚   β”‚       β”œβ”€β”€ entity/      # JPA entities
β”‚   β”‚       β”œβ”€β”€ dto/         # Data transfer objects
β”‚   β”‚       β”œβ”€β”€ security/    # Authentication
β”‚   β”‚       └── config/      # Configuration
β”‚   └── pom.xml
β”œβ”€β”€ frontend/                # React frontend
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ components/      # React components
β”‚   β”‚   β”œβ”€β”€ api/            # API client
β”‚   β”‚   β”œβ”€β”€ routes/         # Routing
β”‚   β”‚   └── utils/          # Utilities
β”‚   └── package.json
└── complete_schema.sql      # Database schema

Database Schema

The application uses a MySQL database with 15+ tables including:

  • Users, Skills, Interests
  • Projects, Project Members, Tasks
  • Professors, Courses, Course Details
  • Ratings, Reviews
  • Messages, Notifications
  • Universities, Attachments

Getting Started

Prerequisites

  • Java 17+
  • Node.js 18+
  • MySQL 8+
  • Maven 3.8+

Backend Setup

  1. Navigate to the backend directory
  2. Update application.properties with your database configuration
  3. Run the database schema from complete_schema.sql
  4. Build and run:
mvn clean install
mvn spring-boot:run

Frontend Setup

  1. Navigate to the frontend directory
  2. Install dependencies:
npm install
  1. Start the development server:
npm run dev

Authentication

The application uses JWT (JSON Web Tokens) for authentication. Users can register and login to receive a JWT token that is used for subsequent API requests.

API Endpoints

Public Endpoints

  • POST /api/auth/register - User registration
  • POST /api/auth/login - User login
  • GET /api/projects - Get all projects
  • GET /api/professors - Get all professors
  • GET /api/courses - Get all courses
  • GET /api/users/teammates - Get teammates

Protected Endpoints

  • GET /api/users/{id} - Get user profile
  • POST /api/projects - Create project
  • PUT /api/projects/{id} - Update project
  • POST /api/ratings - Create rating
  • GET /api/messages/{projectId} - Get messages
  • And more...

UI Components

The frontend uses Shadcn UI components built on Radix UI primitives, providing:

  • Accessible components
  • Responsive design
  • Dark mode support (if configured)
  • Consistent styling with Tailwind CSS

Security Features

  • JWT token-based authentication
  • Password encryption with BCrypt
  • Role-based access control
  • CORS configuration
  • SQL injection prevention (JPA)
  • XSS protection

Key Metrics

  • 20+ REST API endpoints
  • 15+ database tables
  • 30+ service classes
  • 50+ React components
  • 15+ page components

Contributing

This is a portfolio project. Feel free to fork and extend it for your own purposes.

License

This project is for educational and portfolio purposes.

Acknowledgments

  • Spring Boot team for the excellent framework
  • React team for the amazing library
  • Shadcn UI for the beautiful components
  • All open-source contributors

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •