Team Whaler's on the MoonpresentWhimsyDate
Making dates great again!
WhimsyDate is designed to allow users to generate date ideas based on what is already available to them. It is perfect for those situations where couples can't agree on what to do, or both are saying they "don't mind what they do/eat/watch".
The app works by allowing users to randomly generate options for what they will eat, watch or do based on what populates their profiles. We have generic options that populate the app once an account is created, but we encourage users to customise the entries in their profile to better reflect what they have available to them.
The key features of the app are the carousel of categories, the roulette wheel where their option will be picked for them, a veto button that can be pressed once per date if they don't like the option that is picked, a form for users to add their own entries to their profile, and an inspiration page that allows users to see everything on the database that may spark their imaginations for their next date.
The Team
John Noden
William Mckenzie
Ruchika Roy
ZiLiang Wu
Mala Kumari
Tal Davies
Technologies
![React Native, Expo, Tailwind CSS. NodeJS, MongoDB, Firebase, Express](https://images.prismic.io/northcoders/ZqDEpx5LeNNTxcv-_WhimsyDate.png?auto=compress%2Cformat&fit=max&q=60&w=800)
We used: FE - React Native, Expo, Tailwind CSS. BE - NodeJS, MongoDB, Firebase, Express, Render
Expo allowed us to build a react native app quickly and efficiently, React native allowed us to build an app using JavaScript, and Tailwind allowed us to style components quickly and impactfully. We used Firebase as it allowed us to manage authentication effectively. MongoDB is a NoSQL database that allowed flexibility in handling user date, and express allowed us to manage user routes.
Challenges Faced
We made the choice to move to MongoDB after encountering structural problems posed by Postgres SQL when we started applying building our data. As we were already out of the spiking phase when this choice was made, we had to learn the new database management techniques on the go.
There were also issues surrounding getting android emulators to run for all members of the team, so we had to rely on paired programming to make sure everyone could see changes to the app in real-time.