Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
9bc75fb
remove courses + hover x button
ramyareddy04 Apr 29, 2024
be19f91
css fix
ramyareddy04 Apr 29, 2024
45b01c9
Merge branch 'main' of https://github.com/YaleComputerSociety/MajorAu…
winbow13 Feb 2, 2025
7c17d9b
Added back README, fixed minor naming issues
winbow13 Feb 2, 2025
ad7e66b
spring_svg
ryanggum Feb 2, 2025
ab83dd1
course coloring, checkmarks
ryanggum Feb 3, 2025
10d34c4
toggle columns
ryanggum Feb 4, 2025
91dfda7
stuff
ryanggum Feb 4, 2025
977f2e0
middleware
ryanggum Feb 7, 2025
acc8b84
account start
ryanggum Feb 12, 2025
9084ba9
arrangement
ryanggum Feb 23, 2025
e4d8e13
reqs r back kinda
ryanggum Feb 24, 2025
2f8a8ec
data stuff
ryanggum Mar 8, 2025
dd58660
requirements liberated
ryanggum Mar 8, 2025
b9ac1f3
course overflow
ryanggum Mar 8, 2025
c3f9013
more majors
ryanggum Mar 9, 2025
63eb98c
bloody trainwreck
ryanggum Mar 10, 2025
117400f
programs restored
ryanggum Mar 11, 2025
9b9f61b
program list
ryanggum Mar 11, 2025
d2eb41e
good start
ryanggum Mar 11, 2025
711a110
user status (meh) and editing
ryanggum Mar 11, 2025
05d88bf
local majors icons
ryanggum Mar 12, 2025
d728aad
remove majors icon
ryanggum Mar 12, 2025
bb586e2
add popup
ryanggum Mar 13, 2025
577130e
add majors course func
ryanggum Mar 13, 2025
0586b75
program provider
ryanggum Mar 14, 2025
9c6eb92
subreq selection
ryanggum Mar 14, 2025
c1ee832
dyn req count
ryanggum Mar 14, 2025
5fb1cf3
addable course back
ryanggum Mar 15, 2025
0aa06d8
progDict
ryanggum Mar 15, 2025
59dfcee
remove styles
ryanggum Mar 17, 2025
0ba3e79
I don't remember
ryanggum Mar 17, 2025
e834110
options
ryanggum Mar 17, 2025
7576230
autofill
ryanggum Mar 18, 2025
3c743c4
refined fill
ryanggum Mar 18, 2025
bd0e4cb
supabase api
ryanggum Mar 18, 2025
bea35c8
haha wow woah
ryanggum Mar 20, 2025
df79f3c
prog api load render
ryanggum Mar 20, 2025
c31412b
prisma joins
ryanggum Mar 20, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 0 additions & 5 deletions .firebaserc

This file was deleted.

132 changes: 132 additions & 0 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
# MajorAudit

## Repository Layout
- `/frontend`: The current face of the site, built with React.
- `/backend`: The backend logic for the site, built with Flask.
- `/scrapers`: Chrome extensions for web scraping.
- `/docs`: Documentation.

## Local Development Environment

We're working fullstack.

### Requirements
- Access to MajorAudit GitHub repository.
- npm (Node Package Manager).

### Setup Instructions

0. Clone the MajorAudit Repository:
```bash
git clone <repository_url>
```

### Base Firebase Setup
1. In the root directory, run:
```bash
npm install -g firebase-tools
```
_Note: If it throws permission errors, prepend the command with `sudo`:_
```bash
sudo npm install -g firebase-tools
```

### Backend Setup (Python Virtual Environment)
2. Update Python to version 3.12.
- You can use [Homebrew](https://brew.sh/) to install the latest version of Python:
```bash
brew install [email protected]
```

3. Navigate to the `/backend` directory.
4. Create a virtual environment:
```bash
python3.12 -m venv venv
```
5. Activate the virtual environment:
```bash
source venv/bin/activate
```
6. Install the required dependencies:
```bash
pip install -r requirements.txt
```
7. Deactivate the virtual environment:
```bash
deactivate
```

### Secrets Setup
8. Create a `secrets` directory in the `/backend` folder:
```bash
mkdir secrets
```
9. Go to the [Firebase Console](https://console.firebase.google.com/).
10. Select the `majoraudit` project.
11. Click the gear icon next to "Project Overview" and select "Project Settings".
12. Navigate to the "Service Accounts" tab.
13. Generate a new Node.js private key.
14. Move the generated key file to your `secrets` directory.
15. Update the path to the key file in `main.py`:
```python
cred = credentials.Certificate(r'path_to_secrets_file')
```

### Running the Project
1. Install the required frontend dependencies:
```bash
cd frontend
npm i
```

2. Ensure you have Java version >= 20 installed.

3. Log in to Firebase:
```bash
firebase login
```

4. In the `/frontend` directory, build the frontend:
```bash
npm run build
```

5. In the root or `/frontend` directory, start the Firebase emulators:
```bash
firebase emulators:start
```

6. Troubleshoot any errors as needed.

### Notes
- **Frontend Changes**: Anytime you change the frontend code, stop the emulators, rebuild the frontend, and restart the emulators. The emulators only host the most recent build.
- **Web Scraper Changes**: If you modify the web scraper, remove and reconfigure the extension in Chrome.
- **Backend Changes**: You can modify the backend code on the fly. The emulators will automatically restart when you save changes.

### Strategies for Development
- **Frontend-Only Development**:
1. Change the `useState(auth)` value in `App.tsx` to `true`.
2. Modify the `initLocalStorage()` method in `Graduation.tsx` to use `MockStudent` instead of calling the `getData()` API.
3. Run the frontend in development mode:
```bash
npm start
```
4. The frontend will now automatically update as you make changes.

## Contributing
1. Create a branch for your feature:
```bash
git checkout -b <username>/<feature_name>
```
2. Make your changes.
3. Commit and push your changes to the origin:
```bash
git commit -m "Your commit message"
git push origin <branch_name>
```
4. Create a pull request and add reviewers. In the pull request, reference any relevant issue numbers.
5. Once the pull request is approved, merge it into the master branch.

## Roadmap
- We use GitHub issues to track bugs and feature requests: [GitHub Issues](https://github.com/YaleComputerSociety/MajorAudit/issues).
- We use GitHub projects to manage everything and do planning: [GitHub Projects](https://github.com/orgs/YaleComputerSociety/projects/2/).
66 changes: 0 additions & 66 deletions firebase.json

This file was deleted.

Loading
Loading