Skip to content

ioannis-thyris/Trippie

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Trippie

Your road trip, simpler.

Table of contents:

  1. Description
  2. Technical Implementation
  3. Trip creation
  4. Screenshots
  5. How to run
  6. Meet the team

Description

This application was built as a final group project for the Peoplecert Coding Bootcamp, according to the requirements for its successful completion.

What is Trippie?

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!

  1. Select start and destination from cities across the globe.
  2. Select what places types you would like to visit along your route.
  3. Choose your places using an intuitive user interface.
  4. Save your trip and share with your friends.

Target group

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.

Main Features

  • 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.

Other features

  • 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.

Technical Implementation

The application was built with ASP.NET MVC on .NET Framework 4.7.2. An overview of the technologies used is listed below.

Frontend

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.

Backend

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.

Other tools

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.

Trip creation

The functionality of finding places of interest along the route of a road trip is described in the following schematic:

create trip functionality

A more detailed illustration of the data transfer and manipulation happening under the hood is depicted below:

data transfer

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.

Screenshots

Homepage Trip creation
homepage homepage
My Trips Chat feature
mytrips chat

How to run

Follow the instructions to run the application:

  1. Clone the repository.
  2. In the Web.config change the connection string so that the "Data Source" matches your SQL Server.
  3. Run city-autocomplete service with Docker. (Please check the instructions in its repository on how to achieve this)
  4. In the CreateTrip view replace the Google Maps API Key with your own (the existing key is now invalidated).
  5. In the PlacesController replace your OpenTripMaps API Key with your own.
  6. Run the application.

Meet the team

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •