Skip to content

maxh213/donationPortfolio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

donationPortfolio

MVP Spec:

  • A website to track ones donations each month to various charities.
  • The user should be able to sign up and login using auth0 and it will show them a dashboard.
  • The api should store all information in supabase.
  • Once logged in the user should be able to adjust their account settings (name, email, password, delete account, profile picture (use cloudinary and store the url in supabase)).
  • The user should be able to add charities they donate to. (This should include, logo (use cloudinary), name, website url, description, and category).
  • The user should be able to create cause areas and match charities to cause areas (e.g. animal welfare, global health, education, etc.).
  • The user should be able to track their donations by month and year.
  • The user should be able to log a donation by currency, amount, date, and match to a charity.
  • The dashboard should display graphs and charts to visualize the donations by month, year, and cause area.

Technology Stack:

  • I want to use the exact same front end method and stack as ../maxh213.github.io which is a statically generated front end with gleam and modern CSS methods for a beautiful and clean design.
  • The backend should be build with gleam / Wisp for the api, and use supabase, auth0, and cloudinary for everything. Any bit of logic really should be done via the backend, this should be an incredibly lean front end that just displays info via jolt / api calls.

Future Enhancements (not to be done yet, but to be considered when designing the MVP):

  • Add ability to sync with bank accounts and for the user to flag donations so they automatically get imported. Start with Monzo for this.
  • Add ability to export donations to a CSV file.
  • Add ability to set donation goals and track progress towards those goals.
  • Add ability to add metrics to charities (e.g. per $ how many lives saved, people dewormed, children educated, chickens saved, etc.).
  • Add a personal profile page which shows graphs and donations along with the user's name, profile, and a description of their choice which is publically shareable if they enable it.
  • Add a list of recommended charities by the website (Anima International, Fish welfare Initiative, Against Malaria Foundation, etc.) and recommend them to be added with one click.

Development Setup

Prerequisites

  • Gleam installed on your system
  • Erlang/OTP (usually installed with Gleam)

Quick Start with Services Script

Use the provided services script for easy development:

# Start the backend service
./services.sh start

# Check service status
./services.sh status

# View real-time logs
./services.sh logs

# Run tests
./services.sh test

# Stop the service
./services.sh stop

# Get help
./services.sh help

Manual Backend Setup

  1. Navigate to the backend directory:

    cd backend
  2. Install dependencies:

    gleam deps download
  3. Run the development server:

    gleam run

The API server will start on http://localhost:8000

Available Endpoints

  • GET / - Welcome page
  • GET /health - Health check endpoint (returns JSON status)

Running Tests

cd backend
gleam test

Or use the services script:

./services.sh test

Environment Variables

  • PORT - Server port (defaults to 8000)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •