Your road trip, simpler.
Table of contents:
This application was built as a final group project for the Peoplecert Coding Bootcamp, according to the requirements for its successful completion.
Trippie is a web application that simplifies and automates some of the aspects of planning a road trip. In more detail, Trippie automates the boring task of finding interesting places along your route, leaving only the fun part of your road trip, exploring the world!
- Select start and destination from cities across the globe.
- Select what places types you would like to visit along your route.
- Choose your places using an intuitive user interface.
- Save your trip and share with your friends.
The application is aimed, but not limited, to the following:
- People organizing a road trip
- Any car traveler who would like to enrich his journey with additional interesting places.
- Global coverage: Our solution is not exclusive to certain regions of the world.
- With over 10 million places to choose, you can find what really matches your interests.
- With seamless integration with Google Maps™, you are ready to roll as soon as you create your trip.
- User registration/login, including Facebook and Google options.
- Unregistered users can try out the application.
- Registered users can save their trips to view them later.
- Unlock more trip options by paying with Paypal™ and becoming a Premium user.
- Admin role for viewing important data and statistics of the application.
- Autocomplete for the start/destination cities.
- Live chat for instant assistance.
The application was built with ASP.NET MVC on .NET Framework 4.7.2. An overview of the technologies used is listed below.
The frontend of the application was built using HTML5, CSS3, vanilla JavaScript and Bootstrap.
For the maps and directions we used Google's Maps JavaScript API, while for the places we used OpenTripMap API.
The autocomplete feature was implemented through a basic custom-made autocomplete service, based on Elasticsearch. The service, which was developed for the purposes of this application, provides a basic free of charge combination of Google's Place Autocomplete and Geocoding API.
Connection to the database was made with Entity Framework 6, while a Repository design pattern was used to provide the necessary data to the controllers. Also, LINQ was used to query the database, as well as when data manipulation was needed.
Authentication was achieved with the built-in authentication of ASP.NET MVC, using the solution template Individual User Accounts.
The live chat feature for instant messaging was implemented using SignalR and the payment feature was achieved using Paypal Sandbox, a simple environment to simulate real payments made through Paypal.
When necessary Task asynchronous programming was implemented in the controllers.
For data sent over API controllers and for data passed to Views, Data Transfer Objects (DTOs) and View Models were used respectively.
The database used is a relational database on SQL Server.
Development was made primarily on Microsoft Visual Studio 2022, while version control system of choice was Github. Testing of the APIs was made with Postman.
The functionality of finding places of interest along the route of a road trip is described in the following schematic:
A more detailed illustration of the data transfer and manipulation happening under the hood is depicted below:
A request to the autocomplete service is made on user input and the city suggestions are returned. The user selects the start and destination cities of his trip and after selecting his preferred place types (and possibly other parameters), the route is returned from Google Maps API. Then, the corresponding places of interest along the route are returned from OpenTripMaps API, after reducing the initial route with a custom-made algorithm.
Homepage | Trip creation |
---|---|
![]() |
![]() |
My Trips | Chat feature |
---|---|
![]() |
![]() |
Follow the instructions to run the application:
- Clone the repository.
- In the
Web.config
change the connection string so that the "Data Source" matches your SQL Server. - Run city-autocomplete service with Docker. (Please check the instructions in its repository on how to achieve this)
- In the
CreateTrip
view replace the Google Maps API Key with your own (the existing key is now invalidated). - In the
PlacesController
replace your OpenTripMaps API Key with your own. - Run the application.