If you try the demo, note that it will not show the volunteer opportunities as in the screenshot because Github pages doesn't allow HTTP requests - must be Https :(
Due to COVID-19, there are a lot of individuals struggling in their daily lives. Kommunity allows people to support people around them, through a web app.
What it does
Kommunity allows individuals to volunteer to accept requests for help in completing a task. This could range from picking up groceries, carrying furniture, to gardening--the potential is unlimited.
How I built it
I first set up a virtual machine on Google Cloud. After configuring some parameters, I also set up a MongoDB server on that virtual machine. It stores the tasks to complete as well as user information.
I then developed the front end on my own computer. There are three pages.
- Volunteer - Accept a request for help completing a task.
- Request - Post a request for someone to help you complete a task.
When a user loads the volunteer page, it accesses all of the open tasks from the virtual machine. When they submit a request, it adds to the database.
The most challenging part for me was the backend. I next set up an Express.JS server on the virtual machine which would allow a client to access the MongoDB database. After much trial and error, I successfully got the backend setup.
Challenges I ran into
- Finding out how to use Google Cloud Virtual Machine
- Setting up the MongoDB server on the Virtual Machine
- Writing the Node.JS server REST API so that it would handle requests properly.
- Accessing the Node.JS server to get information.
Accomplishments that I'm proud of
I am proud of the full integration of the client-side and the cloud virtual machine which has the backend. It worked out really nicely.
What I learned
I learned a lot about using cloud virtual machines and backend server development.
What's next for Kommunity
- Fix user interface to fit more devices, have profile pictures, more responsive, look better in general.
- Setup secure login system.
- Setup user accounts (Right now, they are not stored in MongoDB).
- Use React.JS for the cards.
- Suggest suggested volunteer opportunities by location and date.