MapMates is an innovative web application designed to revolutionize road trip planning by providing a collaborative, interactive platform for travelers. Our mission is to transform the way people plan, organize, and experience road trips by offering a comprehensive tool that allows multiple users to co-create, customize, and manage their travel adventures.
-
Backend:
- Java 17
- Spring Boot 3.1.5
- PostgreSQL Database with PostGIS extension
- Hibernate with Spatial Extensions
- Docker
-
Cloud & Infrastructure:
- Google Cloud App Engine for running the backend
- Google Cloud Compute Engine VM hosting the production Database in a Docker Container
- Google Cloud Storage for images
- SonarCloud for Code Quality
-
Testing:
- JUnit Jupiter
- Spring Boot Test
- Jacoco for Test Coverage
MapMates' architecture is built around several core components that work together to provide a seamless road trip planning experience:
-
- Manages user authentication, registration, and profile management
- Handles user-related business logic and interactions
-
- Coordinates the creation, modification, and management of road trips
- Enables collaborative trip planning features
-
- Manages route creation, editing, and geospatial calculations
- Integrates with mapping and routing functionalities
-
- Handles discovery, management, and interaction with Points of Interest (POIs)
- Supports adding, editing, and sharing POIs along road trip routes
For developers looking to contribute to MapMates, here are some exciting features to consider:
-
Real-time Collaborative Route Editing
- Enhance the existing route editing functionality with real-time collaborative features
- Implement WebSocket-based live updates for route modifications
- Add conflict resolution mechanisms for simultaneous edits by multiple users
-
Comprehensive Trip Analytics and Insights
- Develop a robust analytics module to provide users with insights about their trips
- Create visualizations of travel statistics, route efficiency, and group travel dynamics
- Implement features to track and compare different route options
- Docker
- Docker Compose
- (Optional) Google Cloud account for advanced features
-
Clone the repository
git clone https://github.com/your-organization/mapmates-server.git cd mapmates-server -
Start the Development Environment
docker-compose --profile dev up
Note:
For image upload/download functionality to work correctly, a service account key is required. Place a JSON key file namedsopra-service-account.jsonin the top-levelkeys/directory of the project. This file must contain the credentials for a Google Cloud service account with Role:roles/storage.admin
Execute the comprehensive test suite using Docker:
docker-compose --profile test up- The application is fully dockerized for consistent deployment
- Configured for deployment on Google Cloud Platform
- CI/CD pipeline integrated with SonarCloud for continuous code quality checks
- Adrian Hauser
- Sebastian Gmür
- Carlo Muntwyler
- Rico Camenzind
- Kim Schlup
This project is licensed under the MIT License. See the LICENSE file for details.
- University of Zurich, Software Engineering Course
- Lukas Niedhart, our TA.