A full-stack web application designed to help college students seamlessly form teams, manage projects, and share ideas within their academic community.
- JWT-based authentication and authorization
- Role-based access control (Student, Professor, Admin)
- User profiles with skills, interests, and availability
- University-based user organization
- Create and manage collaborative projects
- Project status tracking (Open, Ongoing, Completed)
- Skill-based project requirements
- Project member management with roles
- Collaboration requests system
- Advanced search and filtering
- Filter by skills, major, year, and availability
- Online/offline status tracking
- User rating and project count display
- Rate professors and courses (1-5 stars)
- Written reviews and comments
- Average rating calculations
- Public rating display
- Task creation and assignment
- Task status tracking
- Priority levels
- Task comments and discussions
- WebSocket-based messaging
- Project-based group chats
- Real-time message delivery
- User notifications
- Read/unread status tracking
- Java 17
- Spring Boot 3.5.5
- Spring Security (JWT Authentication)
- Spring Data JPA
- MySQL
- Maven
- WebSocket
- React 18
- TypeScript
- Vite
- React Router
- Axios
- React Hook Form
- TanStack Query
- Tailwind CSS
- Radix UI
- Shadcn UI
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
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
- Java 17+
- Node.js 18+
- MySQL 8+
- Maven 3.8+
- Navigate to the backend directory
- Update
application.propertieswith your database configuration - Run the database schema from
complete_schema.sql - Build and run:
mvn clean install
mvn spring-boot:run- Navigate to the frontend directory
- Install dependencies:
npm install- Start the development server:
npm run devThe 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.
POST /api/auth/register- User registrationPOST /api/auth/login- User loginGET /api/projects- Get all projectsGET /api/professors- Get all professorsGET /api/courses- Get all coursesGET /api/users/teammates- Get teammates
GET /api/users/{id}- Get user profilePOST /api/projects- Create projectPUT /api/projects/{id}- Update projectPOST /api/ratings- Create ratingGET /api/messages/{projectId}- Get messages- And more...
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
- JWT token-based authentication
- Password encryption with BCrypt
- Role-based access control
- CORS configuration
- SQL injection prevention (JPA)
- XSS protection
- 20+ REST API endpoints
- 15+ database tables
- 30+ service classes
- 50+ React components
- 15+ page components
This is a portfolio project. Feel free to fork and extend it for your own purposes.
This project is for educational and portfolio purposes.
- Spring Boot team for the excellent framework
- React team for the amazing library
- Shadcn UI for the beautiful components
- All open-source contributors