🛠 This app is in the early stages of development.
⏳ This app uses a free Heroku server and so the initial load can take a while.
Welcome to TripHub, a unified place for groups to organise trips!
Hey, I'm (@benjaminhadfield)[https://github.com/benjaminhadfield] and I'm building TripHub, partly because I think it's a cool idea and I this I'd actually help some people, and partly as a learning exercise for developing scalable and performant Single Page Applications (SPA's) by utilising awesome techniques like bundle splitting and atomic CSS.
Authentication
- Working authentication flow using Auth0
- Persistent login
Trip
- Create new trip
- Edit trip
- Invite new users
- List/manage existing members
Destination
- Search using Google API to get place details from a search (e.g. lat/lng)
- Enter arrive/departure time
- Select travel type
- View destinations on map
Money
- Ability to create a new payment
- Can mark member as having paid their share of a payment
Tickets
- Can upload a ticket/document
- Ticket/document management
Create React App | Project bootstrapping
Amazingly simple and easy project creation, I had a really simple prototype thrown together in a couple of hours 😄 However, I'm not a huge fan of the hidden webpack config, and the lack of typescript support (although flow is supported). So I may be forced to eject at some point in the future. However, until then CRA has really sped up development time and reduced bikeshedding.
Redux | Global app state
This article on how Twitter Lite have structured their redux store is really interesting, and definitely an influencer in how the redux state is designed in TripHub.
Styletron | CSS-in-JS
I was drawn to this library because I like how it handles CSS class names. Styletron converts individual CSS rules into their own atomic classes, and then combines those classes to create the desired styles. In doing this, it hopes to limit CSS size, as future rules are likely to simply be a combination of pre-existing classes.
A great explaination on how Styletron works, along with some limitations, can be found here.