SoulSync is a modern matrimony and dating application designed to help users find their perfect match. It features a robust backend built with Java Spring Boot and a dynamic frontend built with React.
- User Authentication: Secure signup and login using JWT (JSON Web Tokens).
- Profile Management: Comprehensive user profiles with diverse attributes (Education, Religion, Income, etc.).
- Smart Matching: (Planned/Implemented) matching algorithms to connect compatible users.
- Responsive Design: A seamless experience across desktop and mobile devices.
- Data Seeding: Scripts to generate realistic mock data for testing and development.
- Language: Java 21
- Framework: Spring Boot 3.5.6
- Database: PostgreSQL
- Security: Spring Security, JWT (jjwt 0.11.5)
- Tools: Maven, Lombok, Python (for data generation)
- Framework: React
- Build Tool: Vite
- Styling: CSS / Modern UI Libraries
Experience the full application stack with a single command using Docker.
- Full Stack Containerization: Frontend (Nginx), Backend (Spring Boot), and Database (PostgreSQL) run in isolated containers.
- Optimized Images: Uses lightweight Alpine-based images for minimal footprint:
postgres:15-alpine(Database)eclipse-temurin:21-jdk(Backend)node:18-alpine(Frontend Build)nginx:alpine(Frontend Serve)
- Hot Reloading: (Optional configuration) for easier development.
- Data Persistence: Docker volumes ensure your database data survives container restarts.
- Production-Ready Frontend: The frontend is built and served via high-performance Nginx.
- Prerequisites: Ensure you have Docker Desktop installed and running.
- Run Command:
docker-compose up --build
- Access Services:
- Frontend: http://localhost:5173
- Backend API: http://localhost:8080
- Database:
localhost:5432
Note: The Docker setup automatically provisions a PostgreSQL database (soulsync-db-new) with the required schema and credentials.
Before you begin, ensure you have the following installed:
- Java JDK 21
- Node.js (v18 or higher) & npm
- PostgreSQL
- Python 3 (optional, for running seed scripts)
Create a PostgreSQL database named soulsync.
psql -U postgres
CREATE DATABASE soulsync;
\q(Optional) Import seed data:
# From root directory
psql -U your_username -d soulsync -f seed_data.sqlNavigate to the root directory and start the Spring Boot application.
./mvnw spring-boot:runThe backend server will likely start on http://localhost:8080.
Navigate to the frontend directory, install dependencies, and start the development server.
cd frontend
npm install
npm run devThe frontend will typically run on http://localhost:5173 (check console output).
If you imported the seed data, you can use these credentials to log in:
- Email:
vivaan.das.1@hotmail.com(or any generated email) - Password:
password123
SoulSync/
├── src/ # Backend source code (Java/Spring Boot)
├── frontend/ # Frontend source code (React/Vite)
├── seed_data.sql # Database seed SQL
├── generate_profiles.py # Python script to generate random profiles
├── pom.xml # Maven configuration
└── docker-compose.yml # Docker configuration (optional)
Contributions are welcome! Please fork the repository and create a pull request.
This project is licensed under the MIT License.