Mingle is a modern dating application designed to connect people. It features real-time chat, geolocation-based matching, and secure authentication.
- User Profiles: Create and manage detailed user profiles.
- Matching: Geolocation-based matching algorithm to find people nearby.
- Real-time Chat: Instant messaging with matched users.
- Authentication: Secure login with Email/Password, Google, and Facebook (OAuth2).
- File Uploads: Upload profile photos.
- Java 17
- Spring Boot 3.2.3
- Spring Data JPA (PostgreSQL)
- Spring Security (OAuth2, JWT)
- Spring WebSocket (Real-time chat)
- PostgreSQL (with PostGIS for geolocation)
- Angular 17
- TypeScript
- Tailwind CSS 3.3
- RxJS
- Docker & Docker Compose (for database)
Ensure you have the following installed:
- Java 17 SDK
- Node.js (v18+ recommended)
- Docker Desktop
The backend requires a PostgreSQL database. The default configuration in application.yml expects:
- URL:
jdbc:postgresql://localhost:5432/mingle - Username:
mingle - Password:
mingle_password
For OAuth2 authentication to work, you need to set the following environment variables or update application.yml:
GOOGLE_CLIENT_IDGOOGLE_CLIENT_SECRETFACEBOOK_CLIENT_IDFACEBOOK_CLIENT_SECRET
git clone <repository-url>
cd MingleUse Docker Compose to start the PostgreSQL database with PostGIS.
docker-compose up -dNavigate to the backend directory and run the application.
cd mingle-backend
./mvnw spring-boot:runThe backend will start on http://localhost:8080.
Navigate to the frontend directory, install dependencies, and start the development server.
cd ../mingle-frontend
npm install
ng serveThe frontend will be available at http://localhost:4200.
The backend exposes RESTful APIs for user management, matching, and chat.
(Add Swagger/OpenAPI link if available, e.g., http://localhost:8080/swagger-ui.html)