Skip to content

Spring Boot backend implementing REST APIs, JWT/OAuth authentication, role-based access, mentorship workflows, content services, and AI-ready search over a MySQL-backed domain model.

Notifications You must be signed in to change notification settings

opencodeiiita/Alum-X-Backend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

AlumX Backend πŸš€

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.


πŸ“š Table of Contents


✨ Core Features

πŸ‘€ User Management

  • Student, Alumni, and Professor roles
  • JWT based login using email & password
  • OAuth2 login (Google, LinkedIn)
  • Profile completion with skills, interests, experience

πŸ§‘β€πŸ« Mentorship System

  • 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 Blogs

  • Alumni can write experience-based blog posts
  • Students can like, comment, and engage
  • Feed ranking based on engagement like LinkedIn/Reddit

πŸ” Smart Alumni Search

  • Search alumni by:
    • Company
    • Skills
    • Domain
    • Graduation year
  • AI-powered semantic search (RAG-based)

πŸ“„ Resume Builder

  • AI-assisted resume generation
  • Uses user-provided API key
  • Auto-fill details, skills from AlumX profile

πŸ— System Architecture

Client (Jetpack Compose)
        |
        v
Spring Boot API Gateway
        |
------------------------------------------------
| Auth | User | Blog | Mentor | Search | AI |
------------------------------------------------
        |
 PostgreSQL | Redis | Vector DB | Object Storage

⚑ Tech Stack

Backend

  • Spring Boot 4
  • Spring Security + OAuth2
  • Spring Data JPA
  • Hibernate

Databases

  • MySQL – Primary database
  • Redis – Caching & session management
  • Vector DB (Pinecone / Weaviate / FAISS) – AI search

AI & Search

  • OpenAI / Gemini / HuggingFace APIs
  • LangChain / Spring AI

Infrastructure

  • Docker
  • GitHub Actions (CI/CD)
  • AWS / GCP (optional)

Prerequisites

  • Java 21
  • Maven
  • PostgreSQL
  • Docker
  • VectorDB
  • WebSockets

Database Schema (High Level)

Complete Database Diagram

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

Database Tables Overview

The AlumX backend uses the following main entity groups:

  1. User Management - Core user profiles with role-based access (Student, Alumni, Professor)
  2. Chat System - One-on-one messaging between users
  3. Group Chat - Multi-user group conversations with participants
  4. Job Posts - Alumni experience sharing with engagement features (likes, comments)
  5. Resume System - AI-assisted resume management for users

All tables follow proper normalization principles and include appropriate indexes for optimal query performance.


πŸ› οΈ Project Setup

This project uses Spring Boot + PostgreSQL and reads configuration from environment variables to keep secrets out of the codebase.

1️⃣ Clone the repository

git clone https://github.com/opencodeiiita/alum-x-backend.git
cd alum-x-backend

2️⃣ Set up PostgreSQL locally

Make sure PostgreSQL is installed and running on your system.

Create database and user

Login to PostgreSQL as postgres:

psql -U postgres

Then run:

CREATE DATABASE alumx;
CREATE USER alumx WITH PASSWORD 'alumx123';
GRANT ALL PRIVILEGES ON DATABASE alumx TO alumx;

Exit PostgreSQL:

\q

3️⃣ Configure environment variables

The .env file you will need, will be provided to you by the mentor

⚠️ Do not commit .env β€” it is ignored via .gitignore.


4️⃣ IntelliJ Configuration

Spring Boot does not automatically load .env files in IntelliJ.

Steps:

  1. Go to Run β†’ Edit Configurations
  2. Select your Spring Boot run configuration
  3. Under Environment variables, click Load from file
  4. Select the .env file
  5. Apply and close

5️⃣ Build and run the backend

mvn clean install
mvn spring-boot:run

🀝 Contribution Guidelines

  • Follow clean architecture
  • Use meaningful commit messages
  • Open PRs with proper descriptions
  • Avoid pushing secrets

About

Spring Boot backend implementing REST APIs, JWT/OAuth authentication, role-based access, mentorship workflows, content services, and AI-ready search over a MySQL-backed domain model.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 48

Languages