Skip to content

matthewburfield

moon indicating dark mode
sun indicating light mode

Chingu Voyage 16 Complete!

March 26, 2020

An introduction

Before jumping straight into the project, it’s probably worth giving a quick overview of what Chingu is and why I wanted to do a project.

I first discovered Chingu in 2016 when I was working through freeCodeCamp and teaching myself web development. Chingu is a organised project something. After signing up, they pair you with 3-5 other developers, and as a remotely distributed team over 6 weeks (a voyage), you build a project together.

The project can be anything and is decided by the team. The purpose of the 6 week voyage is to coordinate with others and finish a project that you can then add to your portfolio. It’s a great way to keep yourself accountable.

3 years ago I did a couple of voyages and got some good experience working with others. Now, 3 years later, I wanted to build something for fun and thought this would be a good way to do it.

My team and our project

I had 5 members on my team, from various countries within the Asia-Pacific region (Chingu does it’s best to group people into similar time-zones). Our first meeting was about deciding on a project to build.

Having had a couple of friends recently get married, and both of them wanting to have a wedding registry, but not being able to find a decent one online that fit their requirements, I put that project idea infront of the group and we all decided that it would be a good project to build.

We set out some MVP requirements and some stretch goals we could work towards if we had time.

Project Requirements

The following user stories were used as requirements for this project.

  1. User Story: As an unauthenticated user, I can add gifts to my registry

  2. User Story: As an authenticated user, I can update the title and description of my wedding

  3. User Story: As a non authenticated user, I can create a new account and login

  4. User Story: As a non authenticated user, I can navigate to a unique URL to see an existing registry

  5. User Story: As a non authenticated user, I can mark a registry gift as “purchased”

Life in a Voyage

The voyage went for 6 weeks, and each week we called a sprint. The idea of a sprint comes from the agile methodology where after each sprint you have a working product. You then spend each sprint iterating over the product, but are able to test and get feedback after each sprint.

I spent most of this voyage working on the frontend, which was good as one of my goals was to work on the latest version of React, and get more comfortable working with hooks.

Improvements That Can Be Made

Overall we did a pretty good job at getting a solid MVP working. Most of the flows work really well and the app is fully functional.

The first improvement I would make is with the user authentication. We used auth0 for the app user management which was a good solution since it was quick and easy to get going. The issue though, is that the login/signup screen is hosted on auth0, which means the user gets redirected to another site to login, and then redirected back one authentication is made, with the session cookie.

The second problem with authentication, is that it all happens on the client side, so when the user refreshes the page, the server will send all the react code, and then after that’s loaded, the authentication request is sent to auth0. The issue is that for pages that have a “must be logged in” wrapper, nothing is rendered until authentication is confirmed, resulting in a longer loading time. I’d love to update this so all the authentication is done on the server.

I think for this app to be able to be used in the real world, there would need to be a few more features, such as integrating with Stripe, or some payment system.

What I Liked About This Project

I’m really happy with how this project came together. In only 6 weeks we built a fully functional wedding registry including both an admin portal for managing the registry itself, and the guest experience for guests to be able to “purchase” the wedding registry gifts and get some other information about the wedding.

I think the main thing that made this project successful was that our entire team was involved and staying consistent throughout the whole voyage. Every team member attended every virtual meeting through out the entire 6 weeks.

Conclusion

I’m really happy I did this Chingu Voyage. It was a great motivator and kept me accountable. I also enjoyed working as the PM, organising the tasks for each member and checking in with everyone indiviually.

I plan to keep working on the wedding registry and get it to a point that it could be used in the real world.

After that, I’ll definitely be back to do another Voyage!

Happy Coding!


Hi, I'm Matthew Burfield. I like writing about cool development stuff.