An application that has two portals. One for admin and one for students. Students are able to request help as well as cancel their requests. Under the Student Queue tab, admins will be able to filter students by class, see the order of requests, as well as close requests as the admin goes to assist students. An admin should close the request at the start of helping a student so that other admins will not think that person is still waiting for assistance.
The other main feature of the application is the job tracker feature. Students are able to add jobs they've applied to, keep a wishlist of jobs, as well as edit the jobs / job status. They jobs are fully filterable by the jobs current status and ordered by most recently updated. From the stats page a fellow is able to quickly identify some of the high level stats on how effective their job search has been so far.
-
Clone This repo.
-
Install Postgres on your computer and the shell commands help.
-
Create a firebase account
- Create a new project. Give it whatever name you like.
- You don't need to enable google analytics but you can just leave it checked. Accept all terms and conditions.
- Once the project is created (it takes about 30 seconds), click continue.
- Click the
</>icon to create a new firebase web app. Give it whatever name you like. - DO NOT set up firebase hosting
- Configure your frontend to use the new firebase auth keys
- You'll see a bunch of configuration code - copy paste only the
configobject into an.envfile on the root of the frontend. Then rewrite the config to match this format:
REACT_APP_APIKEY=982342lkjsdfksdh23SDhfsnk-CX8E REACT_APP_AUTHDOMAIN=whatever.firebaseapp.com REACT_APP_DATABASEURL=https://something.firebaseio.com REACT_APP_PROJECTID=whatever-auth REACT_APP_STORAGEBUCKET=pursuit-whatever.appspot.com REACT_APP_MESSAGINGSENDERID=3245322 REACT_APP_APPID=xxxx:xxx:Xxxxx:XxxxxFor each key in the object, uppercase it and prefix it with
REACT_APP_and suffix_DEV. Otherwise it will be ignored by create-react-app. Also change the:to=and get rid of the comma at the end of the line.Basically, what was this line:
apiKey: "982342lkjsdfksdh23SKhfsnk-CX8E",
Becomes this line:
REACT_APP_APIKEY_DEV="982342lkjsdfksdh23SKhfsnk-CX8E"-
Click
continue to consolewhen done copy-pasting and rewriting. -
Setup email/password authentication
-
Scroll down and click the
authenticationcard -
Click the
sign-in methodtab -
Click
Email/Passwordand enable just the first checkbox. If you click both, firebase will email every user that signs up and require them to verify their account, so skip that for now because it makes testing with fake emails harder. -
Click Save
-
Click the gear next to
Project Overviewand clickProject Settings -
Go to the
Service Accountstab and generate a new private key -
Download the private key to your computer
-
Create another
.envfile in the root of your backend, and add the private key info to the the.env.
TYPE = service_account PROJECT_ID = PRIVATE_KEY_ID = CLIENT_ID = AUTH_URI = TOKEN_URI = AUTH_PROVIDER_X509_CERT_URL = CLIENT_X509_CERT_URL = CLIENT_EMAIL = PRIVATE_KEY =- Change the
databaseURLstring in theadmin.initializeAppconfig object to the one in the admin sdk example code
-
Next you will need to create your database.
- Make sure the code in the schema file is all commented in:
DROP DATABASE IF EXISTS helper_queue; CREATE DATABASE helper_queue; \c helper_queue;- Run the command
psql -f relativePathToSchemaFile - Repeat this process of making sure code is commented in, and running the command for all migrations in the migration folder. Migrations should be run in order.
-
Inside the backend .env file you'll need to add the following:
- DATABASE_URL = postgres://localhost:5432/helper_queue
- PORT = 3001
-
run
npm installwhile inside the backend. Then runnode app.js -
run
npm installwhile inside the frontend. Then runnpm start. -
Debug any problems and then make pull requests to improve instructions.
Please create a new issue in the repository.
Please submit a PR request to be reviewed. Please make sure that your feature has full test coverage before submitting the request.
- PostgeSQL
- Node
- Express
- React
- Redux Toolkit
- Firebase