AlumX is a scalable, backend-heavy alumni networking platform designed to connect students, alumni, and faculty through mentorship, knowledge sharing, and AI-powered discovery.
This repository contains the Spring Boot backend powering AlumX.
- Overview
- Core Features
- AI-Powered Capabilities
- System Architecture
- Tech Stack
- Database Schema (High Level)
- API Design
- Security
- Project Setup
- Directory Structure
- Contribution Guidelines
- Future Enhancements
- Student, Alumni, and Professor roles
- JWT based login using email & password
- OAuth2 login (Google, LinkedIn)
- Profile completion with skills, interests, experience
- Students can request alumni as mentors
- Chat functionality is available between mentor and mentee.
- Alumni can accept or reject mentorship
- Professors can act as moderators/proctors
- Alumni can write experience-based blog posts
- Students can like, comment, and engage
- Feed ranking based on engagement like LinkedIn/Reddit
- Search alumni by:
- Company
- Skills
- Domain
- Graduation year
- AI-powered semantic search (RAG-based)
- AI-assisted resume generation
- Uses user-provided API key
- Auto-fill details, skills from AlumX profile
Client (Jetpack Compose)
|
v
Spring Boot API Gateway
|
------------------------------------------------
| Auth | User | Blog | Mentor | Search | AI |
------------------------------------------------
|
PostgreSQL | Redis | Vector DB | Object Storage
- Spring Boot 4
- Spring Security + OAuth2
- Spring Data JPA
- Hibernate
- MySQL β Primary database
- Redis β Caching & session management
- Vector DB (Pinecone / Weaviate / FAISS) β AI search
- OpenAI / Gemini / HuggingFace APIs
- LangChain / Spring AI
- Docker
- GitHub Actions (CI/CD)
- AWS / GCP (optional)
- Java 21
- Maven
- PostgreSQL
- Docker
- VectorDB
- WebSockets
View the complete, interactive database schema diagram here:
AlumX Database Diagram - Interactive View
The diagram includes:
- 9 main entities: User, Chat, Message, GroupChat, Participant, GroupMessage, JobPost, JobPostComment, JobPostLike, Resume
- 12 user profile collection tables: skills, education, tech_stack, languages, frameworks, communication_skills, certifications, projects, soft_skills, hobbies, experience, internships
- All relationships properly mapped with foreign keys and cardinality (1:1, 1:N, N:M)
- Indexes and constraints as defined in the codebase
The AlumX backend uses the following main entity groups:
- User Management - Core user profiles with role-based access (Student, Alumni, Professor)
- Chat System - One-on-one messaging between users
- Group Chat - Multi-user group conversations with participants
- Job Posts - Alumni experience sharing with engagement features (likes, comments)
- Resume System - AI-assisted resume management for users
All tables follow proper normalization principles and include appropriate indexes for optimal query performance.
This project uses Spring Boot + PostgreSQL and reads configuration from environment variables to keep secrets out of the codebase.
git clone https://github.com/opencodeiiita/alum-x-backend.git
cd alum-x-backendMake sure PostgreSQL is installed and running on your system.
Login to PostgreSQL as postgres:
psql -U postgresThen run:
CREATE DATABASE alumx;
CREATE USER alumx WITH PASSWORD 'alumx123';
GRANT ALL PRIVILEGES ON DATABASE alumx TO alumx;Exit PostgreSQL:
\qThe .env file you will need, will be provided to you by the mentor
β οΈ Do not commit.envβ it is ignored via.gitignore.
Spring Boot does not automatically load .env files in IntelliJ.
- Go to Run β Edit Configurations
- Select your Spring Boot run configuration
- Under Environment variables, click Load from file
- Select the
.envfile - Apply and close
mvn clean install
mvn spring-boot:run- Follow clean architecture
- Use meaningful commit messages
- Open PRs with proper descriptions
- Avoid pushing secrets