This repository houses the backend infrastructure for the Travel4Real, a web application dedicated to connecting travelers with authentic local experiences. Our platform enables locals to share and manage their unique cultural experiences while allowing travelers to discover genuine, off-the-beaten-path adventures.
This backend provides the following functionalities to support the Travel4Real platform:
- User registration 📝 and authentication ✅.
- Creation of new experiencies
- Retrieval of experience details 🔍
- Updating existing experience information ✏️
- Deletion of experiences 🗑️
- Search funcionality, including filters of location and category.
- Provides a set of API endpoints 🌐 for communication with the frontend application.
- Supports standard HTTP methods (GET ➡️, POST 📤, PUT 💾, DELETE 🗑️) for data manipulation.
- Implements security best practices 🛡️ to protect user data and prevent unauthorized access 🚫.
- Programming Language: Java 21
- Backend Framework: Spring Boot 3.4.4
- Data Persistence: Spring Data JPA
- Security: Spring Security (JWT)
- Database: PostgreSQL / H2
- IDE: Visual Studio Code
- Project Management: Trello
- Version Control: Git - GitHub
- API Client: Postman / Swagger
-
PostgreSQL (Docker):
- Ensure PostgreSQL is running as a Docker container (port:
54321). pgAdmin(Docker container) is available athttp://localhost:8080.
- Ensure PostgreSQL is running as a Docker container (port:
-
Spring Boot Setup:
- Create your
.envfile from the example and fill in your desired values:cp .env.example .env
- Run the Docker containers:
docker compose up -d
- Build the project with Maven (skips tests):
mvn clean install -DskipTests
- Run the Spring Boot application and visit
http://localhost:8080:mvn spring-boot:run
- Create your
You must create and configure a .env file before running the application. Use the example below as a reference:
DATABASE_URL=jdbc:postgresql://localhost:54321/travel DATABASE_USERNAME=sameAsPostgresUser DATABASE_PASSWORD=sameAsPostgresPassword
POSTGRES_HOST=localhost POSTGRES_USER=sameAsPostgresUser POSTGRES_PASSWORD=sameAsPostgresPassword POSTGRES_DB=travel POSTGRES_PORT=54321
PGADMIN_DEFAULT_EMAIL=yourname@email.com PGADMIN_DEFAULT_PASSWORD= FILE_UPLOAD_DIRECTORY=uploads/experiences
💡 Nota: Cambia los valores sameAsPostgresUser y sameAsPostgresPassword por tus credenciales reales. No dejes el campo PGADMIN_DEFAULT_PASSWORD vacío si planeas usar pgAdmin de forma segura.
API documentation is provided through Swagger and can be found at http://localhost:8080/swagger-ui/.
|
Larissa Saud LinkedIn | GitHub |
Mariuxi Olaya LinkedIn | GitHub |
Milena Ocoro LinkedIn | GitHub |
Paola Morales LinkedIn | GitHub |
Tetiana Vashchenko LinkedIn | GitHub |