We wanted to create something like LinkedIn or Indeed for volunteering. Somewhere where you can just see a list of volunteering opportunities with times, locations, and descriptions without really having to search at all.

What it does

It stores and serves events from a database to the website. You can add and list events from the website, and register to volunteer with one click.

How we built it

We split it into two parts: Svelte frontend and Express backend. The backend handles all the user authentication and database requests, while the frontend just queries the backend and updates the UI depending on what data it gets and what the user does.

Challenges we ran into

None of us had much fullstack experience, so we basically had to learn SvelteKit from scratch. We ended up mostly just using Svelte and querying a separate API because it was just easier. None of us have any design experience so we used Bootstrap and tried to figure it out.

Accomplishments that we're proud of

Accomplishments that we're proud of include successfully implementing user authentication and database integration using MongoDB and Mongoose. We were able to create a (mostly) functioning prototype in a short amount of time, despite having limited fullstack experience. We also successfully integrated Bootstrap into our design, creating a clean and functional user interface (if I do say so myself).

What we learned

  • Svelte
  • MongoDB + Mongoose
  • The importance of structuring databases BEFORE building the app

What's next for Altruist

We have a lot of things we want to add.

  • Filters: Sort by proximity, filter by organization type
  • Notifications: You should be able to 'favorite' places and get notified every week of their schedule.
  • Better navigation: Right now the navbuttons are always displayed, regardless of whether the user is logged in or not. Some pages need authentication, so we'd just use Svelte to hide or show the buttons.

Online Demo

Signup is broken so just login with the username and password joe to view events. Sorry!

Share this project: