Fri, Mar 12, 2021 11:34 am
Leave is the final capstone project. I worked together with the same two folks as in previous projects. We created a travel itinerary app using React.js, Node.js, Express.js, and PostgreSQL. We also used Redux to manage state. For styling, we used Sass and Bulma.
The app’s goal is to allow a user to search for a travel destination, input the number of people traveling and the dates. The app makes a fetch request from React to a third-party API and displays a page of results. The user can then save the destination for their trip. On the back end, the trips are stored in a PostgreSQL database.
We divided responsibilities to work on specific features of the app. The first person worked on setting up the database with PostgresSQL along with some of the Express routes. The second person worked on setting up the routes in React to consume third-party endpoints, Redux, and some components. I worked on setting up the Express server, front-end styling, content, Heroku hosting, and external Postgres database, along with a few other odds and ends.
While we did stick with our notes and get a working app up, we didn’t add everything in as we wanted. We would have liked to have included a login system with user authentication, though it was not part of the app’s requirements. Another feature that would have been nice would be to have a separate “favorites” section to store trips that they would like to go.
The biggest struggle overall was timing. We had two weeks to plan, develop, and ship the app. Apart from the timing, I had some difficulty getting the database set up to communicate externally with Heroku’s PostgreSQL plugin. For some reason, I could not get the database created or migrations to run. Perhaps it was just an issue with my understanding, but it became a blocker. I was able to get that resolved by exporting my local database and copied it to my hosting. At that point, I was able to get the app running, and no further issues came about.
This project was the most rewarding that I have worked on to date as I was able to work with all parts of the stack in some capacity, and I have a more thorough understanding of how all of the features work.
This blog post is part of a series of posts giving some background on a few projects that I’ve worked on during my courses at DigitalCrafts.