CSCE Capstone

Student Site for Individual and Collaborative Activities

CSCE Capstone

Student Site for Individual and Collaborative Activites

Team 9 – AltruSight

Team Members:

Rafael Toche Pizano

Seth Piepergerdes

Tanner Edwards

Andrew He

Ben Guthrie

Project Goals and Summary:

AltruSight’s goal is to implement a proof-of concept website to serve as a beacon of transparency when it comes to donating money to nonprofits. There are several main goals for our project. First, we want to provide a centralized system where donors can track how their donations are being used. We also wish to add a social aspect of donation in the form of a Venmo-esque payment feed, as well as the ability to favorite, share, like, etc. for any nonprofit supported on the website. We also wish to ultimately provide a comprehensive analytics platform detailing how each nonprofit spends their money, as well as details on an individual level detailing personal goals and donations. 

Ultimately, our objective is to create a system that makes it easier to hold nonprofits accountable and makes it easier for donors to see how their donations are being put to use, as well as providing relevant information on the legitimacy of nonprofits supported on the website. We want to be a central hub of information for all things nonprofit.

Tasks Breakdown

Our Tasks

There are a number of tasks that we need to complete in order to reach our goal for AltruSight. We’ve broken them down into a few categories in order to better understand how to go about implementing a web application of this scope, addressing a market size this large.

Ramping Up

  • The team should become familiarized with the tools used in our tech stack, mainly Angular which will be used as our front-end, and our back-end which will be composed of a NodeJS server and our cloud database utilizing Heroku PostgreSQL.
  • The team should become familiarized with the overall design of our project and understand the use case as well as the features that will be implemented.
  • The team should understand the general requirements that nonprofits have to fulfill in terms of government documentation and spending, and develop a basic idea on how to evaluate nonprofits based on the information that is publicly available.
  • Locate an API with nonprofit information listed that will fit our use case

Creating the Front End

  • Design and implement our NodeJS backend API and host on Heroku
  • Design and implement the home page. This mainly includes a logo, alternate views, social sidebar, toolbar, search bar, payment feed
  • Design and implement the registration / login forms for users.
  • Design and implement the nonprofit pages including a ratings and evaluation sidebar, specific nonprofit information, and relevant links.
  • Design and implement the users profile page
  • Design and implement the look and feel for a user “donating” through our website.

Integrating Functionality with the Front End

  • Design the schema for our PostgreSQL database.
  • Design our backend API
  • Implement user account functionality.
  • Implement mock payment for users. No transactions will actually go through but we will save relevant information in our DB.
  • Implement mock payment feed for users based on the mock payments made stored in our DB.
  • Pull in non profit information from our API of choice and use that information to populate relevant components (mainly in the nonprofit page)
  • Implement search functionality for users (users should be able to search for nonprofits)
  • Implement the ability to “favorite” nonprofits.

Additional Stretch Goals

We aim to add significant value adds to our application if time constraints allow. These are listed below:

  • Implement charts and statistics for users and nonprofits
  • Implement a way to automatically grab non profit information in order to create default pages for new nonprofits in a way that provides value to users (move away from manual curation)
  • Implement a way to parse government documentation to extract relevant information from forms.

Our Schedule

Ramp Up - Hitting the Ground Running: 11/16 - 01/25
Task Summary
Gain familiarity with tech stack and development standards
  • Front-end: Angular + HTML + SCSS
  • Back-end: NodeJS + Express
  • Database: Heroku PostgreSQL
  • Sprint cycle expectations
Gain familiarity with overall project design
  • Planned features
  • Use cases for our project
  • Overarching architecture
Learn more about nonprofits
  • Requirements fulfilled by nonprofits and how to evaluate performance
  • Government documentation and spending
  • Locate an API with nonprofit information listed that will fit our use case

Design database schema

  • Evaluate all the information we will need to store and query
  • Create diagram for easy visualization
Sprint 1: 01/25 - 02/08
Tasks Summary
Design and Implement Backend API
  • Create the structure for the endpoints exposed in our backend server
  • Implement backend API using NodeJS
  • Host server using cloud services such as Heroku
Continue to design and implement database schema
  • Polish, plan and implement the structure for our database
  • Create documentation on standards for our codebase on how to access and push information

Begin Home Page

  • Toolbar with a search bar, dropdowns, easy access buttons (visible across all pages)
  • Payment Feed (Venmo Style) – Hardcoded
  • Social Sidebar
Implement user authentication services
  • Create forms, pages, and modals for user login and registration
  • Implement a robust user authentication; for example, Firebase Auth
  • Ensure user login status is persisted immediately thru the web app
Sprint 2: 02/08 - 02/22
Tasks Summary
Continue backend API design Refer to Sprint 1
Begin nonprofit pages
  • Page with ultimately filterable and searchable list of all nonprofits, pulled in from external API
  • Page for individual nonprofits containing a ratings / quick evaluation sidebar, main panel for more detailed information, and quick links to relevant sites and information

Begin user profile pages

  • Contains initial login information
  • Ability to edit certain user information
  • Ability to add and remove profile picture
  • Option to logout or delete account
Sprint 3: 02/22 - 03/08
Tasks Summary
Improve home page (alternate views for social / nonprofit based content)
  • Logo in toolbar
  • Alternate views for either the social home page (feed/socials) and a nonprofit based home page (trending nonprofits, featured nonprofits, news, etc.)
Add alternate views for logged in vs. logged out users
  • Ideas include splash page on home page, blurred out content, removal of dropdowns in toolbar
  • Redirection from all URLs non accessible to users back to default home page
Implement search functionality
  • Search with live filter and dropdown results for nonprofits both in main toolbar and nonprofit list page
Implement mock payment for users
  • Use saved “payment” data in DB to populate social payment feed for users
Sprint 4: 03/08 - 03/22
Tasks Summary
Implement ability to “favorite” nonprofits
  • Store favorited nonprofits and associate with users in DB
  • Display favorited nonprofits in relevant locations such as home page and profile page
  • Show special display / status when on a “favorited” non profits page
Implement mock payment feed for users
  • Use saved “payment” data in DB to populate social payment feed for users
Sprint 5: 03/22 - 04/05
Tasks Summary
Differentiate between user and “nonprofit” accounts
  • Nonprofits can sign up for an account using an authorized email from the organization (probably won’t be able to implement this part)
  • While in nonprofit account mode, a nonprofit user can edit their specific page information
Sprint 6: 04/05 - 04/19
Tasks Summary
Implement donation progress bar
  • Users can set individual goals for a time period and track their “donations” through a progress bar
  • Nonprofits can set goals for fundraising and track their progress through a progress bar
Implement charts and statistics for nonprofit information and user information
  • Charts summarizing nonprofit spending
  • Charts summarizing user donations through time
  • Other statistics can be visualized as well
Parsing relevant government documentation
  • Extracting information from publicly available documents released by government / nonprofits
Sprint 7: 04/19 - End of Semester
Tasks
Polish documentation on project
Fix major bugs and issues
Create final presentation and project report