IIIT Insider is a full-stack portal built with a high-performance React front-end and a robust Spring Boot REST API backend. It includes complete user session management, Firebase-driven multi-device push notifications, and server-managed social media dynamic sharing features.
IIIT-Insider/
├── backend/ # Spring Boot Backend
│ ├── src/
│ │ └── main/
│ │ ├── java/com/iiitinsider/
│ │ │ ├── controller/ # REST API endpoints
│ │ │ ├── service/ # Business logic
│ │ │ ├── model/ # JPA entities
│ │ │ ├── repository/ # Database repositories
│ │ │ └── config/ # Security & JWT config
│ │ └── resources/
│ │ ├── application.properties
│ │ └── schema.sql
│ └── pom.xml
├── src/ # React Frontend
│ ├── Components/ # UI Core
│ ├── Pages/ # Route Views
│ └── services/ # Axios API wrappers & Firebase initializers
├── nginx/
│ └── nginx.conf # Nginx reverse proxy configuration
└── public/
└── firebase-messaging-sw.js # Firebase Service Worker
- JWT Token Validation: Stateless user authorization through request headers.
- Password Protections: Client passwords encrypted securely using BCrypt hashing before persistence.
- Endpoint Protection: Route guarding implemented on the Spring Security engine to control access permissions.
- FCM Ecosystem: Leverages Firebase Cloud Messaging to send targeted browser alerts.
- Device Enforcement Rules: Constrains active connections to a maximum of 5 concurrent devices per profile.
- Automatic Eviction: Detects overhead registrations and triggers an automated deletion of the oldest active device token.
- Custom backend logic translates URLs and text strings into platform-ready intent parameters for major social spaces.
- Fully out-of-the-box integrations for Facebook, Twitter (X), LinkedIn, WhatsApp, and Reddit.
- React 19 & React DOM 19: Advanced UI engine capitalizing on the automated
React Compilerinfrastructure. - Vite 7: High-speed development bundler implementing Hot Module Replacement (HMR).
- Tailwind CSS 4: Modern utility-first CSS styling engine integrated natively into the Vite build layer.
- React Router DOM 7: Declarative client-side routing ecosystem.
- Spring Boot 3.2 (Java 21): Production-ready Java enterprise backend layer.
- Spring Security & Validation: Handles system boundaries, access tokens, and JSON payloads.
- Spring Data JPA: Object-Relational mapping wrapper over the relational data architecture.
- MySQL Connector J: Database abstraction driver.
- Firebase Admin SDK (9.2.0): Native connection library to manage cloud tasks securely from a Java thread.
Ensure you have the following installed on your machine:
- Java 21 Development Kit (JDK)
- Node.js (v18+) & npm
- MySQL Server
Run the following commands in your MySQL environment:
CREATE DATABASE iiit_insider;
- Head over to the Firebase Console and create a new project.
- Register a new Web App under your project dashboard.
- Copy your specific configuration map and replace the stubs found in:
src/services/firebase.jspublic/firebase-messaging-sw.js
- Navigate to Project Settings > Service Accounts, select Generate New Private Key, and download the file.
- Relocate that JSON key file to your source tree exactly at
backend/src/main/resources/firebase-service-account.json.
Open backend/src/main/resources/application.properties and populate your target MySQL credentials:
spring.datasource.password=your_mysql_password
Run the Spring Boot application using Maven:
cd backend
mvn spring-boot:run
The REST API will accept incoming request streams over http://localhost:8080/api.
From the root level directory, install the required packages and spin up the Vite development server:
npm install
npm run dev
The client dashboard interface will stand up on http://localhost:5173.
POST /api/auth/register— Accepts user registration payloads.POST /api/auth/login— Verifies credentials and yields a valid authorization JWT.GET /api/auth/me— Fetches current user profile attributes.
POST /api/notifications/register-device— Attaches a new FCM registration token.POST /api/notifications/unregister-device— Purges target active device channels.GET /api/notifications/devices— Lists currently active device attachments.POST /api/notifications/send— Issues a push message payload out to target endpoints.
GET /api/social/share-links?url=...&title=...— Returns sharing link combinations for all platforms simultaneously.
- Harshit Raj - Team Leader
- Devansh Parmar
- Arshaan Baig
- Divit Pandey
- Aranya Kumar
- Aditya Sharma
- Daksh Soni
- Vaibhav Jain
- Sreyash Gaddam
- Rohit Kumar Kuldeep