Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/learnathon-by-geeky-solutions/devs
Repository for team Devs
https://github.com/learnathon-by-geeky-solutions/devs
Last synced: 1 day ago
JSON representation
Repository for team Devs
- Host: GitHub
- URL: https://github.com/learnathon-by-geeky-solutions/devs
- Owner: Learnathon-By-Geeky-Solutions
- License: mit
- Created: 2024-12-24T12:27:49.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2025-02-05T17:38:50.000Z (5 days ago)
- Last Synced: 2025-02-05T18:44:10.132Z (5 days ago)
- Language: Java
- Size: 78.1 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Roamance Backend
## Overview
Roamance is a social travel platform that enhances the travel experience through interactive features, AI-powered recommendations, and community engagement. This repository contains the backend implementation using Spring Boot.## Team Information
### Team Members
- jahidem (Team Leader)
- R1B3n-13
- yashrif### Mentor
- kaziasifjawwad## Tech Stack
- Java 21
- Spring Boot 3.2.x
- Gradle 8.x
- PostgreSQL 17
- WebSocket
- Spring Security
- Spring Data JPA## Prerequisites
- JDK 21 or higher
- Gradle 8.x
- PostgreSQL 17
- Docker (optional, for containerization)## Project Structure
```
src/
├── main/
│ ├── java/
│ │ └── com/
│ │ └── roamance/
│ │ ├── RoamanceApplication.java
│ │ ├── config/
│ │ ├── controller/
│ │ ├── model/
│ │ ├── repository/
│ │ ├── service/
│ │ ├── security/
│ │ └── util/
│ └── resources/
│ ├── application.yml
│ ├── application-dev.yml
│ └── application-prod.yml
└── test/
└── java/
└── com/
└── roamance/
└── ...
```## Getting Started
### Development Setup
1. Clone the repository:
```bash
git clone https://github.com/Learnathon-By-Geeky-Solutions/devs.git
cd devs
```2. Configure your database in `application-dev.yml`:
```yaml
spring:
datasource:
url: ${DB_URL}
username: ${DB_USERNAME}
password: ${DB_PASSWORD}
```3. Build the project:
```bash
./gradlew clean build
```4. Run the application:
```bash
./gradlew bootRun
```The application will be available at `http://localhost:8080`
### Docker Setup
1. Build the Docker image:
```bash
docker build -t roamance-backend .
```2. Run the container:
```bash
docker run -p 8080:8080 roamance-backend
```## API Documentation
API documentation is available through Swagger UI at `http://localhost:8080/swagger-ui.html` when running in development mode.## Features
### Core Functionalities
- User Authentication and Authorization
- Profile Management
- Travel Planning and Itinerary Creation
- Social Networking Features
- AI-Powered Recommendations
- Interactive Map Integration
- Real-time Updates via WebSocket
- Image Processing and Storage
- Search Functionality with Elasticsearch### API Endpoints
- `/api/v1/auth/*` - Authentication endpoints
- `/api/v1/users/*` - User management
- `/api/v1/trips/*` - Trip and itinerary management
- `/api/v1/social/*` - Social networking features
- `/api/v1/places/*` - Location and place data
- `/api/v1/search/*` - Search functionality## Configuration
### Environment Variables
```properties
DB_URL=jdbc:postgresql://localhost:5432/roamance
DB_USERNAME=
DB_PASSWORD=
JWT_SECRET=
```### Application Properties
Key application properties can be configured in `application.yml`:
- Server port
- Database connections
- Security settings
- File upload limits
- Caching configuration
- Logging levels## Testing
- Run unit tests:
```bash
./gradlew test
```
- Run integration tests:
```bash
+./gradlew integrationTest # Requires custom Gradle task configuration
```## Deployment
1. Build the production package:
```bash
./gradlew bootJar
```2. The built JAR will be in `build/libs/`
3. Deploy using the provided Dockerfile or your preferred deployment method
## Monitoring
- Actuator endpoints available at `/actuator/*`
- Prometheus metrics at `/actuator/prometheus`
- Health check at `/actuator/health`## Contributing
1. Fork the repository
2. Create a feature branch
3. Commit your changes
4. Push to the branch
5. Create a Pull Request## License
[MIT License](LICENSE)