A lot of people have lost their jobs due to COVID-19. As we begin to recover, I thought it would be nice for businesses that can offer assistance to offer discounts for those especially affected negatively.
What it does
Businesses: Businesses are able to register and add deals that customers can use at their organization. Once created, subscribed customers are sent a text message with information on the deal and business.
Customers: Customers can Sign Up/Subscribe to get deals once a business adds it, and also unsubscribe to stop receiving deals.
How I built it
This is a Springboot Java project. I used the SpringBoot Redis Data dependency to accommodate interacting with the Redis Server, and also to create a Redis Database. A Pub/Sub structure is used. When businesses create deals they get sent published to the topic. Customers subscribed to the topic will receive those text deals. I also used the Twilio SMS API to sent subscription notifications. I used docker to run the Redis server.
Challenges I ran into
The biggest challenge was getting the Pub/Sub to work. I tried using streams first but kept getting errors on the consumer side, which sent me down a StackOverflow rabbit hole.
The second biggest challenge was figuring out how Redis databases work. I began with a traditional JPA Repository but had errors when trying to use it, probably because it was interfering with the Redis Data dependency. In the end I did some research on how to use the Redis Database and it was cool to learn NoSQL and interact with hashoperations.
Accomplishments that I'm proud of
I am really proud that I got the pub/sub to work!
I am also proud that I came up with a use case. I was stumped for a really long time on what do create, because I want my projects to have meaning and create impact. That meant I didn't have much time to add all the bells and whistles I wanted but it was a great learning experience overall.
What I learned
I learnt about Pub/Sub!
As a Java developer it has been my goal to learn this for a few months. it took a while to understand the concept but I made it.
I also became familiar with NoSQL databases (with Redis data).
What's next for ShopAssist - Subscription Deals for COVID-19 recoveries
Tech: Adding a more functional UI, business logins, and more complex pub/sub architectures! Business: For the COVID-19 response, there could be a customer approval system that would require people to submit proof of unemployment or something of that nature to make sure those who are really in need are using this service.
In long run this project can be used outside of COVID-19 as well to help businesses connect with customers.
(Thumbnail Icon made by itim2101)