Version 1.0.0 Release Notes ● Download Guide ● Troubleshooting
Our goal is to provide parents with access to emergency caregivers whenever and wherever it's
needed. TutorCare is a platform designed to facilitate on-demand childcare for parents of the
Georgia Tech community by pairing them with Georgia Tech student caregivers. Parents can use
this application for quick and easy access to caregivers whether they need tutoring for their
child or someone to look after them.
- Custom login and logout authentication
- Email Verification and GaTech Restriction
- Customizable public user profiles
- Map of available nearby caregivers
- Job Post: Create, Edit, Apply, Applications Received, Select
- Active Job: Start and end verification
- Ratings and Reviews
- Live Chat Messaging
- Fixed explicit SQL queries with GORM refactoring to prevent SQL injection
- Put validation to prevent invalid information on the following forms: sign up, login, create job, and edit job
- Added authentication to backend of websockets to prevent hijacking
- Webpack bundle needs to be optimized
- Search feature is not elasticsearch so it will become slow with higher number of posts
- Usability: Forms do not autofill information, requiring user to input the same info in multiple places
- Mobile sidebar is not closable on very small screen sizes
- Git (latest version)
https://git-scm.com/downloads - Node version manager, nvm (macOS/linux) or nodist (Windows) (latest version)
https://docs.npmjs.com/downloading-and-installing-node-js-and-npm - PostgreSQL Relational Database (latest version)
https://www.postgresql.org/download/ - Docker (latest version)
https://docs.docker.com/get-docker/ - Docker Desktop UI Application (latest version)
https://www.docker.com/products/docker-desktop/ - GoLang (latest version)
https://go.dev/doc/install
- Click on the green code button at the top right of this GitHub page
- Copy the HTTPS URL
- Open terminal or command prompt on your computer
- cd into the folder in which you want to download (clone) this project. The following is an example, it will be different on your device
cd users/documents/Github/
- Run
git clone <HTTPS URL>
with the HTTPS URL of this project (you just copied)
Important For development, there is an environment file that is not within the GitHub with passwords and private API keys. This file should be placed into the api folder. Contact owner for access or more information.
- cd into the 'client' folder. Example:
cd user/documents/github/tutorcare-core/client
- Run
npm install
- Run
npm install -g @angular/cli
- Run
npm install -D tailwindcss
- Open new terminal or command prompt on your computer
- cd into 'api' folder. Example:
cd user/documents/github/tutorcare-core/api
Windows
- Run:
docker-compose up web
- followed by:
docker-compose up migrate
MacOS/Linux
- Run:
sudo docker-compose up web
- followed by:
sudo docker-compose up migrate
- Keep this terminal/command prompt open to keep the server running
- Open new terminal or command prompt on your computer
- cd into the 'client' folder. Example:
cd user/documents/github/tutorcare-core/client
Windows
- Run:
ng serve --proxy-config proxy.config.json
MacOS/Linux
- Run:
npm run start
- Keep this terminal/command prompt open to keep the process running
- In your favorite web browser, go to
http://localhost:4200/
Client
- In terminal running the client
- Press CTRL+C to end the process and close the terminal
Server
- In the terminal running the server
- Press CTRL+C to end the process
- Run the following to tear down the docker container
docker-compose down
Client
- Any changes to the client codebase should automatically recompile and refresh in your browser
Server
- Follow instructions above to shut down the server
- Delete the api_web Docker Image
- Follow instructions about to start up the server again
Database
- Follow instructions above to shut down the server
- Delete the api_web, migrate/migrate, and postgres Docker Images
- Delete the pgdata folder in that was created in the api folder
- Follow instructions about to start up the server again
- Many errors encountered will stem from issues with the docker-compose.yaml file interacting with your machine in a specific, unintended way. This will involve googling the error codes from the terminal output, as many different ones can occur.
- When creating new database tables, be aware that DELETE and UPDATE SQL operations still need to follow foreign key constraints, meaning a newly created table using a foreign key from a previous table, could break a DELETE endpoint that is deleting an object from the previous or older table. You must instead perform a DELETE operation on both the corresponding object from the newer table first, and then the older table second.
- Many frontend errors encountered can simply be fixed by deleting package-lock.json and the node_modules folder inside the client directory. Then, simply re-run
npm install
- Additionally, deleting the angular webpack folder and restarting the frontend can fix many issues.