Community Support System - Manage Events . Donations. Sell local artwork

Community Support System - Manage Events . Donations. Sell local artwork

The following is our submission to the [Appwrite] [Hashnode] Hackathon.

Team Details:

Project Goal

The inspiration behind our project is the desire to support and uplift local communities. We wanted to create a platform that brings together individuals, artisans, and organizations to promote local donations, art, and events. We believe that supporting local communities can have a significant impact on their growth and prosperity.

Our project has been designed to support and empower local communities by providing an easy to use platform to manage local events, create and donate to fundraisers and sell and buy local art.

Project Features and Description

Event Management

Our project enables the user to organize and manage local events through our location based event management system. The users can create events , and search for events happening in their locality based on our location based event filter.

Fundraising and Donations

Users can organize fundraisers/charities and contribute whatever amount they wish to. This is extremely useful when communities want to organize local cultural events or if a member needs aid and support. They can sort fundraisers by locality.

Art Marketplace

Our application provides a marketplace for selling local art online to other users. Users can submit images of their artwork and those shall be displayed on our marketplace for others to browse.

Managing User Auth and Sessions

User authentication, accounts and sessions are managed effectively.

Light and Dark Mode toggle

Toggle between and light and dark mode easily.

Tech Stack

Reactjs, TailwindCSS

Reactjs is a javascript library which made creating a dynamic frontend extremely easy.

Third Party APIs

We have used third party APIs such as the stripe API to handle payments for donations and artwork.

Appwrite Cloud

  • Authentication and Authorization :

    Appwrite offers User and Account API made it extremely easy to implement user signup, login and creating email sessions which last upto one month.

  • Database :

    Our application stores data for events, donations and the art marketplace. We have created three collections to store and retrieve data.

  • Storage :

    Storing files in databases is costly, this is where scalable file storage comes in. Our project uses a single storage bucket to store files.

  • Realtime :

    For our events section, we have implemented realtime updation of events using Appwrite's realtime service.

  • Cloud Functions (Nodejs) :

    We have written custom backend code to implement some of our key features which include sorting events and donations based on the users' location. These functions are deployed are used wherever we have implemented this functionality.

  • Integrations :

    Through the appwrite integration service we were able to create our own platform and have added our site domain name in the Update hostname input, through this we were able to successfully deploy our app on that domain and were able to connect the frontend with the appwrite backend successfully.

  • Locale :

    Appwrite locale service was extremely useful to implement the sorting events and donations by location functionality.

Challenges Faced

Understanding Appwrite

Our entire team had never used a backend-as-a-service before, so getting started with Appwrite and all of its different services and how it's better than writing your own server was challenging. However the documentation helped us understand all of the different services and their usecases really well.

Appwrite Best practices

Initially we simply used to import Appwrite in every single file and write all of our code in our frontend files. We soon realised there was too much repetition and looked up some good Appwrite projects online, where we observed how developers created a single file for all the Appwrite code. We then refactored our code accordingly.

Utilizing different services effectively

I believe, in our project we have managed to justify the use of different Appwrite services effectively. Choosing a project which would use most Appwrite services and justify their use led to many good discussions when the hackathon began.

Code repository

Github Repo Link

Deployed demo link

Demo Video

Any feedback is welcome and do drop a like if you liked the idea !!