UTDallasEPICS / Carson-s-Village

https://carsonsvillage.org
6 stars 5 forks source link

Carson's Village

Project Background and Introduction

Carson's Village, inspired by Jason Dyke's personal tragedy, emerged to address the death of support for grieving families. Established as an innovative bereavement program, it offers comprehensive aid to families navigating loss. In 2023, it served 2,200 families nationwide, providing resources, advice, and practical assistance without financial obligations.

Our project at UTD EPICS aims to enhance Carson's Village services by developing an Automated Family Page, streamlining the process of creating tribute pages for deceased family members. By automating this aspect, the project seeks to alleviate the burden on both Advocates and grieving families during an already stressful period. The primary objectives include updating the page based on user feedback, integrating a reporting tool for increased functionality, and implementing iterative UI/UX improvements to enhance user experience.

Admin:

Advocates:

Families

Functional Requirments:

Pages:

New Page:

Users:

Invite User:

Create Family:

Home:

Donations:

Family Reports:

Nuxt 3 Minimal Starter

Look at the Nuxt 3 documentation to learn more.

Dependency Software to Install

Nodejs, Docker, IDE with command line, Git, WSL2 (windows only)

Setup

Clone repsitory

Copy .env into root or fill out new keys from .env.example

Need Private keys/info for

Install the dependencies:

(npm is easier, but pnpm is better)

# npm
npm install
or
npm i

# pnpm
pnpm install --shamefully-hoist

Run Docker

Start Docker Desktop Change the director to prisma/local Run docker compose

cd prisma/local
docker-compose up

Initialize Database

Initialize Postgres DB via

npx prisma generate
npx prisma migrate dev

Add first user with prisma studio with valid email that you can use

npx prisma studio

And add email and user role as admin for maximium privilege And optionally add

Add first user via Postgres CLI Enter Postgres CLI

docker exec -it local-db-1 psql -U postgres

Enter first user with your email set to a usable email

 insert into user_accounts(cuid, email, first_name, last_name, user_role) values ('your_name', 'your_email', 'your_first_name', 'your_last_name','admin')

Development Server

Start the development server on http://localhost:3000

npm run dev

Production

Build the application for production:

npm run build

Locally preview production build:

npm run preview

Check out the deployment documentation for more information.

Interacting with site

Log in via the 'Login' button and use Auth0 with the previously entered email

docker-compose.yml location

The docker-compose file is located in /prisma/local for local development

Schema location

The schema is in prisma and is in /prisma

UI Mockups Folder

The ui mockups are located in /figma

Workflow diagrams

The workflow diagrams are located in /flowcharts

Notes for the langauges of the tech stack

Notes on the current tech are located in /notes

Current Deployment Scheme

The main and stage branches automatically deploys to pages.carsonsvillage.org and pages-staged.carsonsvillage.org respectively via an AWS EC2 instance built via GitHub actions for testing. The deployment scripts are in /.github/workflows.

Migration Scripts

None Carsonsvillage.org, the previous solution, is not ever green so the data will start from scratch on future Carson's Village's usage of this project.

Conceptual Overview

This system is focused around advocates, families, and pages. Advocates invite families and guide them through the process of creating a memorial page. These pages contain obituaries, times, and locations. These pages are publicly viewable and searchable. Pages can receive donations, have donation goals, and have deadlines for fundraising. Family users can only access the system after being invited by an advocate. Family users have profiles. Admin distributes donations to families.

Functional Requirements

Email List

Edit Page

Users

Family Pages

Family Report Page

Donation Managment Page

Family Creation Page

User Invite Page

Home

Page List

User List

Search Page

Stack

Nuxt, postgres, prisma

Research Questions

None

Third party integrations

Deployment

AWS EC2