Team Codecrafters
presentJunket

Codecrafters Demo Video

Codecrafters Demo Video

Your solo-travel companion.

Many of our team have had experiences travelling solo. We found, of the issues that we had faced, some were particularly prevalent among the group; namely, problems with being social in unfamiliar settings. Junket is a solo-traveller application, designed to remedy a potentially anxious travel experience. It allows you to connect with fellow travellers and share exciting experiences with others. By creating a trip, you can inform the app of where you are travelling to and the dates that you will be there. Using this information, Junket seamlessly displays local events that are happening that users otherwise may not have heard about. Events are created by either locals, businesses or fellow explorers, allowing you to meet, chat, exchange info and share memorable experiences together.

The Team

  • Team member imagePreview: Team member image

    Jonny Chatterton

  • Team member imagePreview: Team member image

    Karolina Konior

  • Team member imagePreview: Team member image

    Kimberley Fisher

  • Team member imagePreview: Team member image

    Oleksandr Korovii

  • Team member imagePreview: Team member image

    Jack Dean

  • Team member imagePreview: Team member image

    Miguel Varona

Technologies

Technologies section imagePreview: Technologies section image

We used: Node.js, React Native (with Expo), PostgreSql, Express, Axios, FireBase Auth, Google Places API, Validate.js

Tech Stack - Front

Firebase Auth - Firebase was used to handle sensitive user data without us being personally involved by automatically hashing user data. Additionally, Firebase was simple to set up and allowed us to seamlessly connect our user data with our PostgreSQL database.

React Native (with Expo) - was the framework we used for the front end. Because we wanted to create a mobile application, Native allowed us to write code that would function on a number of devices. Expo also proved to be excellent for testing as we were quickly able to view our app in mobile form using this software.

Google Places API - The autocomplete provided by the places API allows users to enter locations with friendly names and select from suggestions made by google, this means that we can get an exact location on the map without the user needing to provide coordinates for the location.

Axios - We used Axios to make calls to our backend. Axios helped to eliminate the need for fetching and streamlined our API calls.

Validate.js - This library allowed us to create validations that could be reused across our app and had prebuilt validations for standard checks such as checking if a string is a URL.

Tech Stack - Back

PostgreSql - As our data was going to have lots of relationships with users needs to attend and save events we decided to use a SQL DB, Postgre is lightweight and open source meaning that there is great community resources and can be hosted for free.

Node.js - Node was selected as our back end to allowed us to use the pg library that helps automate functionality such as sanitising inputs, which helps prevent SQL injection attacks and malformed data being entered by users on the custom fields.

Express - Express allowed us to easily create a REST api, the library makes it much simpler and cleaner to create this than the Node.js built in functionality.

Challenges Faced

React Native proved to have something of a learning curve when compared to React.
Styling with React also proved difficult, as many elements pre-styled already. However, we were able to learn and progress more quickly the more time we spent on the project.
Validation also proved quite challenging, but was somewhat remedied using the extensive library of Validate.js docs.

To sum up; We've had a blast!