Inspiration

This project was inspired by the many people who, whether they are elderly or are living with disabilities, have difficulty shoveling their walkway following a snowstorm and don't have someone available to help. The problem may seem benign at first, but having a walkway filled with snow and ice can be quite dangerous for some people. It may even force them to stay inside for fear of being injured. Shoveler is one step towards building a world in which communities support people facing this issue.

What does it do?

Shoveler is a service for matching people who have difficulty snow shoveling with people willing to help.

How was it built?

The frontend was built using React.js, the backend was built using Go, and the database is Apache Cassandra. Slim.AI was used for vulnerability analysis of Docker container images.

Challenges

The main challenge was learning a new database, Cassandra. Cassandra does not allow where clauses on columns that are not the primary key or have a secondary index applied. This slowed development as changes to the database schema where required to enable what would be routine queries in PostgreSQL or MongoDB. There is certainly a reason for Cassandra's data model, but it took some getting used to.

Other challenges were ensuring that node_modules are correctly represented within the React.js Docker container and trying to get the docker-slim to appropriately startup services based on the prescibed delays and dependency order of the docker-compose.yml file.

What are you especially proud of?

I'm pleased to have come up with this idea and implemented a minimum viable product for it. There is a lot of work left to be done before the service becomes production ready, however.

What did you learn?

I learned a new database called Cassandra and improved my knowledge of React.js.

What's next for Shoveler?

There is much more development to be done on Shoveler before it's ready to become a live production service. If it does reach that stage and catches on, the plan is to run it in the form of a non-profit via donations. Its primary goal should always be helping others rather than monetary gain.

Built With

Share this project:

Updates

Submission history