Skip to content

Hack4Impact-UMD/journey-home

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

606 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🏠 Journey Home

This repository contains the source code for Journey Home's donation management platform, a Next.js web application that connects furniture donors with a Connecticut nonprofit serving formerly homeless individuals. The platform features a public-facing multi-step donation form with photo uploads, an internal staff dashboard for reviewing and approving donation requests with integrated Mapbox location views, warehouse inventory management with advanced search and filtering, and role-based user access control with account approval workflows. Built with TypeScript, React 19, Tailwind CSS, and Firebase (Authentication, Firestore, Storage), the application streamlines the entire donation lifecycle from initial submission through warehouse intake and item distribution.

πŸ“š Table of Contents

πŸ‘₯ Meet the Team

Meet our wonderful team comprised of Product Managers, Designers, Tech Leads, Engineers, and Microsoft Mentors!

Kalpana Iyer
Kalpana Iyer

Product Manager
Laila Shakoor
Laila Shakoor

Product Manager
Joel Chemmanur
Joel Chemmanur

Technical Lead
Aarav Verma
Aarav Verma

Technical Lead
Sohayainder Kaur
Sohayainder Kaur

Designer
Tracy Tan
Tracy Tan

Designer
Katie Yang
Katie Yang

Designer

Anya Jain

Engineer

Sarayu Jilludumudi

Engineer

Amber Li

Engineer

Savya Miriyala

Engineer
Picture of Shreyas
Shreyas Thirumale

Engineer
Anna Lin's Team Headshot
Anna Lin

Picture of Engineer Alisha
Alisha Wu

Engineer
Manit Rana
Manit Rana

Mentor

πŸŽ“ Our Team Alumni

Arnav Dadarya
Arnav Dadarya

Technical Lead
Ritika Pokharel
Ritika Pokharel

Engineer
Tanvi Tewary
Tanvi Tewary

Engineer
Pending
Jibran

Mentor

πŸ› οΈ Project Setup

This section is pretty important, and messing up here could lead to a lot of issues later in the development process. If you aren't sure about any of these directions or something isn't working for you please reach out to one of the Tech Leads!

Install the following software from the links provided:

It is recommended that you use VSCode as your IDE. You can install it here if you don't have it already.

We recommend using the following VSCode extensions to make your development experience much easier.

  • Prettier - Code formatter
    • This is an auto-formatter for your code. It's already configured for this project so it should work off the bat
  • TailwindCSS IntelliSense
    • This will allow you to see auto completions when writing Tailwind classes and it makes working with Tailwind so much easier

Open your terminal in the directory you want the project folder to be in and then run git clone as shown below to clone the project onto your computer.

git clone https://github.com/Hack4Impact-UMD/journey-home.git

Then use the cd command to enter the project directory and then install the project dependencies.

cd journey-home
npm install

❗❗❗ IMPORTANT: There are some environment secrets that the project needs to run that are stored in a .env file. If you've been provided a .env file to use, just put this directly in your project directory. If not, copy the env.example file to .env and then configure the secrets in there.

For development, we will be using the Firebase emulator and some other Firebase CLI tools that are from the firebase-tools package. This package will be installed globally on your system so you can run the commands from anywhere.

npm install -g firebase-tools

Authenticate the Firebase Tools CLI with the Firebase account you associated with the Journey Home project.

firebase login

Congratulations! At this point your project environment is fully set up! Now we will get into how to run the project for development.

First start the Firebase emulators. There's a convenient NPM script that starts all the emulators with some base data. This emulator has to always stay running, so keep it open when you have the web page running. Once you run the emulators, they will print some links that you can use to access the data in the emulator.

npm run emulators

Open a new terminal and then start the Next.js development server.

npm run dev

Congratulations! You're running the project! Just click on the link in the terminal to view the development page.

The default admin account login in the base emulator data is admin@test.com with the password password.


πŸ—οΈ System Design

🚧 Work in progress...


πŸ“ PR Instructions

To start working on a feature, first create a branch off the main branch that's named <your name>/<feature>.

git switch main
git checkout -b joel/donation-review

Implement the feature or complete the task you have been assigned. If you have any questions on design, implementation, or anything at all please ask the Tech Leads. Make sure you use types from the types/ folder whenever appropriate. Usually you can also use existing pages as a guideline on how to implement new ones.

When you are finished, make sure you thoroughly test your feature to make sure it works. Ensure that your code is cleanly written and formatted like the rest of the repository (just run the Prettier formatter).

Once you're happy with it, run your changes through the linter.

npm run lint

If the linter doesn't find any issues, you can then ensure that your code build's properly.

npm run build

If the build completes without errors, your code will likely pass CI checks as well.

Stage and commit your changes with a descriptive commit message, then push to your branch.

git add <files>
git commit -m "Add donation review functionality"
git push origin joel/donation-review

On GitHub, create a draft PR. Fill out the PR template completely, including screenshots of your changes and implementation notes for reviewers. Before submitting the PR, check the "Files Changed" tab to verify only the intended changes are included. Never leave any unnecessary file changes in your PR! Make sure to remove them if you find any at this stage.

CodeRabbit will automatically run on your draft PR once it's submitted. Address any issues it identifies. If you're unsure about a recommendation, ask the Tech Leads. CodeRabbit is usually correct but occasionally suggests odd fixes.

Once you've addressed all CodeRabbit feedback, mark your PR as Ready for Review and request reviews from both Tech Leads on GitHub. Send a message in your Slack channel with team leadership to notify them.

Tech Leads will likely leave additional comments. Continue pushing changes to the same branch to address their feedback. After resolving their comments, request another review on GitHub and ping them again in Slack.

Once everything looks good, the Tech Leads will merge your code. Congratulations! You have contributed to the project!

About

An inventory and volunteer management system for Journey Home, a nonprofit helping individuals transition out of homelessness. Built with React, Next.js, and Firebase.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages