Skip to content
Hack4Impact-UMDPublic

About

No description, website, or topics provided.

Resources

Stars

6 stars

Watchers

0 watching

Forks

Latest commit

 

History

62 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Hagar

This repository contains the source code for Hagar's Analytics Management Platform, a full-stack TypeScript web application built with React and Vite, with a tRPC backend on Firebase.

📚 Table of contents

👥 Meet the team

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

Laila Shakoor
Laila Shakoor

Product Manager
Bhavya Tanugula
Bhavya Tanugula

Product Manager
Joel Chemmanur
Joel Chemmanur

Technical Lead
Aarav Verma
Aarav Verma

Technical Lead
Anita Daniel
Anita Daniel

Designer
Lucy Davies
Lucy Davies

Designer
Sophia Narido
Sophia Narido

Designer
Achyut Anoop
Achyut Anoop

Engineer
Alisha Wu
Alisha Wu

Engineer
Indira Shafii
Indira Shafii

Engineer
Nazeer Ahmed
Nazeer Ahmed

Engineer
Saanvi Kataria
Saanvi Kataria

Engineer
Srihas Inaganti
Srihas Inaganti

Engineer
Stanley Xu
Stanley Xu

Engineer
Yuvan Adarsh Jagannathan
Yuvan Adarsh Jagannathan

Engineer

🛠️ Setting up the project

The instructions here are important to follow, messing up here will lead to issues later on. If you have any questions, reach out to the Tech Leads.

  1. Install the following tools.

    Tool Version
    Git Any recent version
    Node.js 22 or later
    pnpm 11 or later (you can install with npx get-pnpm)
    Java 21 or later (the Auth and Firestore emulators need it)

    We recommend VS Code with these extensions:

  2. Clone and install.

    git clone https://github.com/Hack4Impact-UMD/hagar.git
    cd hagar
    pnpm install
  3. Install the Firebase CLI and log in.

    npm install -g firebase-tools
    firebase login

    Log in with the Google account you gave the Tech Leads. They will add you to the Hagar Firebase project. The repo is already linked to it. Run firebase use to check, it should print hagar-intl.

  4. Set up your .env. The Tech Leads will send you a .env file. Put it in the root of the project, next to .env.example. If you haven't been sent one, copy the example and ask the Tech Leads for the values:

    cp .env.example .env

    You don't need a .env to run the app locally, the emulators accept any values. You do need it to connect to the real Firebase project. Never commit your .env, it's already in .gitignore.

  5. Install the Playwright browser.

    pnpm exec playwright install chromium
    
  6. Start the app.

    pnpm dev
    

    This opens the app at http://127.0.0.1:5173 and the Emulator UI at http://127.0.0.1:4000. To start just the emulators, use pnpm emulators

  7. Make sure you pass the tests.

    pnpm checks
    pnpm test:e2e
    

    If formatting fails, run pnpm format. To run one particular test, use pnpm lint, pnpm format:check, pnpm typecheck, pnpm test.

📝 Making a pull request

  1. Pick up an issue. Issues will be assigned by Tech Leads. Every PR should map to a GitHub issue.

  2. Branch off main.

    git checkout main && git pull
    git checkout -b <your-name>/<short-description>
  3. Commit and push your work. Have small, focused commits instead of giant ones. Your commit message should say what the commit does, so someone reading git log can understand it without opening the diff.

    Good Bad
    Add team photo for Aarav fix
    Validate email on signup form stuff
    Fix redirect loop after logout aaravsux

    The first time you push your branch, set its upstream:

    git push -u origin <your-name>/<short-description>

    After that, git push is enough.

  4. Run the checks and E2E tests. Both must pass before you open the PR:

    pnpm checks
    pnpm test:e2e

    If the format check fails, run pnpm format to fix it. If an E2E test fails, pnpm test:e2e:ui opens Playwright's UI so you can step through it.

  5. Open the PR into main. There exists a template to follow, make sure you follow it exactly so that we can map a PR to a Github Issue.

  6. Address every CodeRabbit comment. Fix the ones that are right. If you think a comment is wrong, reply to it and explain why. Don't leave any comment without a fix or a reply.

  7. Request review. Once CI is green (which is when all the GitHub checks have a green checkmark) and CodeRabbit's comments are handled, add Joel (@joelchem) and Aarav (@constrictingsnake) as reviewers, and ping the tech leads in the private leadership chat.

  8. Respond to feedback. Push fixes, re-request review, ping in leadership slack again, and merge once the PR is approved.

About

No description, website, or topics provided.

Resources

Stars

6 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages