CarMessenger app is a platform that enables you to write a message to drivers of other cars based on their license plates. Did someone drive like a gentleman and you want to thank them for it? Did you see a stunning girl in a car next to you while waiting on a red light?
The app integrates Twilio through .NET core backend to NoSQL database FaunaDB and Next.js frontend.
This was fun. I've always wanted to get into NoSQL databases and handling SMS and Whatsapp messages. I've just never had the time or the right idea for it. This hackathon gave me a great opportunity to learn both.
I knew this project called for a NoSQL database as there can be a lot of messages coming in. I tried using Couchbase which was awesome and so easy to understand. But it required me to host it in a Docker image which seems to be quite expensive for a project that does not earn anything. Therefore, I switched to FaunaDB which uses a similar concept but was a bit of pain at the start as they don't primarily focus on C# developers. It took me one 2h Twitch session where FaunaDB guys helped me implement the basic CRUD functionality. Without proper type safety. But performance is stellar.
The center of the whole project is .NET core-based web application. I played around with the idea of having implemented every piece of backend functionality using serverless functions, but I was scared of overserverlessing. That fear of being stuck in the maintenance prison made me place my bet on .NET core WebAPI project. So far so good.
This part handles Twilio webhook notifications as well as provides data to the front-end.
The front-end is implemented using Next.js. I chose that platform because I have never had a chance to learn it. It wasn't easy and I got angry. That happens every time I actually start to discover how things work and learn the framework. Couple of hours later I find Next.js quite charming.
I started the project in the second half of April and thus experienced a lack of time. However, I'm not putting it aside after submitting to the Twilio hackathon. Quite the opposite :)
I implemented a great portion of the project online during Twitch sessions.