I wanted to make something that would be useful to the COVID lifestyle while not being so hyper-specific that it would not be useful when things are more normal. Another thing I wanted to focus on is encouraging a more community-centric mindset and encourage people to do good acts. I find current platforms tend to be very insular and focused on the self. I wanted to shift to the focus to make people think what could they do for others. Initially, I was planning on doing a mental health project that focuses on keeping people to be in a good place mentally as well as surrounded themselves with a supportive community. However, while looking up what is good for mental health, I read about the benefits of giving and beng kind, and that stuck to me, especially since many mental health apps are so introspective, I was intrigued by the idea of looking outward of the self. Recently, I've been thinking a lot about how much social media encourages people to focus on themselves and how others percieve them and how much that wrecks people's self-esteem and mental wellbeing as well as how people post so many messages of support and offering help for people whose lives are dramatically altered by COVID such as those who lost their jobs, those who are in the vulnerable population, those whose education have been disrupted, and so on.
What it does
From my brainstorming, I pulled out the common thread of community and decided to create a platform for people to give and recieve acts of kindness, be it tutoring, resume review, a ear to listen to, music lessons, so on. I didn't want to be too specific as to what kind of support is offered because I wanted each individual to be able to recieve and give value to the community using the platform. As people are all unique individuals with their own strengths and weaknesses, I wanted the platform to be broad enough so that they can offer support to others in the areas of their strengths, and recieve support in areas of weakness. By allowing many different aspects of support on the site, I hope to build an inclusive community that makes people more accepting of others due to the influence of being part of a diverse community.
How I built it
I built the platform with Ruby on Rails with HTML/CSS with ERB (embedded ruby) in the frontend. I store the data in a PostgresSQL database.
Challenges I ran into
A lot! Hardly anything went smoothly, which means I learned a lot. Routes was rough and I spent a lot of time trying to figure out how to get things the way I wanted them to connect. I spent forever on styling the navbar because I did not know how to get everything aligned. I tried installing a bootstrap gem so I could base my navbar off the example in the tutorial page, but after hours of debugging, I decided writing the HTML/CSS from scratch would be a better use of time and effort. I also uploaded on Heroku, which is cool! I learned a lot about...
- GET/PUT/POST/PATCH/DELETE through hours of trying to figure out what kind of method to use and puzzling out why there were errors saying the route does not exist before realizing it was the wrong method + path combination.
- Authorization & authentication! I used Devise to create sign in/log in/log out forms and handle the authorization tokens and stuff and that just exposed me to how things work in practice
- Database manipulations through writing many migration files as I iteratively add more features once I get the basic versions of the previous done.
- Database manipulations again because databases are core to a lot of the things I'm doing, such as the search bar which searches multiple columns of multiple tables, or the browse page, which returns the latest created Gives (what I call the volunteering/acts of kindness on the platform)
- Even more database stuff because I also had to connect tables together (for example, a User has a lot of Gives). I learned a lot anout the different relationships between tables.
- Making a real-time chat! I didn't actually get to that point of implementation as I am typing this, but I know how to proceed if I decide to make the message feature more chat-like.
Accomplishments that I'm proud of
The number 1 accomplish I am proud of is actually having something to submit. This would be the first time I submit a project for a hackathon, so it's exciting stuff. Although I had some general knowledge of Ruby on Rails, PostgresSQL, etc, I never actually had the opportunity to actually work with them and get "hands-on" so I'm glad I could build an entire thing with them. Initially, I was overwhelmed by the concept, but I decided to break it down and work on it piece by piece, and I'm proud of how far I got.
What's next for Sapport
There's a lot of next steps I can take. A lot of features need refinement. I've been brainstorming about what I would like to do for a while, but the specific concept of sapport was written down and refined in about half a day, so I would like to take more time just sitting with the idea and refining it to get to the core values and mission of my vision for the platform. On the technical side, the next big challenge would be moderation and certifications to remove bad actors: people who want to game the system, people who use the platform to connect to others with malicious intent, and so on. I'm aware that although my vision is a supportive community, reality may not follow so closely. However, before i start working on those features, I would definitely need to improve the core features of the platform as the feature that connects users together is extremely rudimentary. Although the route work, there is room for improvement, and that is one step that should be taken in the future. I also have a bunch of notes on how I can make the existing features more sophisticated which are also all very good steps to take.