Inspiration
For the past two years, I have been trying to streamline my life so I can spend more time on enjoyable activities. I have discovered two pieces of remarkable software: Notion and Obsidian, both of them turning out to be fantastic tools for organising life.
Having divided my life into areas, I then realised that while being extremely useful, Notion pages take up a lot of time in preparation and organisation. For example, I have a ‘Winter morning’ page where I have been collecting some cool ideas for winter morning routines. Compiling the lists of useful ideas, however, is very tedious. What is more, on occasions when I really need a great idea, like ‘what to give my best friend for the 10000th time, my mind goes black even though I know she loves little experiences the most.
One afternoon, as I was reading about C# , I came across the notion of APIs. I started reading about them and quickly found myself browsing through websites that list free APIs for developers. One of the APIs promised to share thousands of ideas for different activities in categories such as: educational, productivity or relaxation. So I thought that all these things would also be fantastic as gifts; and taking it one step further, even better as full dates with partners, friends, or most surprising, ourselves.
What it does
The app promises to find ideas for perfect dates so people can save time and relax. It helps in this through offering drink recipes that the user can make, as now they have plenty of time that they do not need to spend on boring preparation.
The app offers a choice of three types of dates:
- with a cat/dog/ rubber duck
- with a partner/ friend
- with a group of friends
After the user has decided which kind of date they want to plan, the app offers an idea for their perfect date.
How we built it
Unfortunately, I joined the hackathon late, and was not able to find a last-minute team. Nonetheless, I decided to treat the hackathon as a good opportunity for developing my personal learning goals and chose C#, as this is what I’m learning in my free time. I have wanted to learn about APIs, so used this project for that purpose.
During the weekend, I was watching many tutorials that showed different ways of calling external APIs and I tried to experiment with them. After many unsuccessful builds, I began to understand the process better and was able to connect to two external APIs.
Challenges we ran into
The biggest two challenges for me were the lack of team on this occasion and the fact that I am a beginner, so I had been having a lot of issues with how access modifiers affect the code and that was not related to what I was trying to focus on. I had to spend the limited time I had on trying to achieve my goal of connecting to an external API, so I chose to ignore some other things like writing proper validation, learning simple unit testing or gaining more knowledge about the OOP. I think, in the future, with more general programming knowledge, it will be easier to avoid getting stuck on simple things.
I had hoped to learn mapping of the class properties to the SQLite database but I have run out of time. The whole process was fun, though, especially trying to apply different tips from the StackOverflow that were usually a little too advanced for me and broke the code even more but I had dealt with it by searching for BlogPosts that were typically much more detailed.
Accomplishments that we're proud of
I have managed to connect to the external APIs! During the hackathon, I came across many tutorials that I can start doing soon e.g. about the MVC or async. It felt really great when I was able to trace the problems in my code through setting some breakpoints, as I’m still new to debugging.
What we learned
I have learnt that APIs are a very large topic and that learning how to connect to the external ones is only just a beginning. There are many projects that require building own APIs.
What's next for Simply Together app
The first step would be for me to make sure that everything that is there is working properly. For example, when testing different inputs, I discovered that if the user chooses Coffee / Tea, the app crashes but I didn’t have enough time to finish it.
The database also needs to be finished and this is where the user’s favourite date ideas will be stored.
Simply Together could be extended by adding a connection to Meal APIs, so people can prepare dinners and be able to download shopping ingredients or even order them online. Adding more romantic/ adventurous ideas for couples would be a good idea too after they have been checked that they are adults.
In the future, the app could be used by two or more users, who would secretly vote on different activities and if both/ all people like it, it would automatically appear in the database of their favourites.
Built With
- boredapi
- c#
- drinkapi
- restsharp
Log in or sign up for Devpost to join the conversation.