Skip to content

An application for on-demand childcare and tutoring services

License

Notifications You must be signed in to change notification settings

k-lombard/TutorCare

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 

Repository files navigation

TutorCare (1)
Postgres Docker Redis Angular.js TailwindCSS MUI Go

JIA-1307: TutorCare

An application for on-demand childcare and tutoring services

GitHub issues GitHub forks GitHub stars GitHub license GitHub top language Twitter

Version 1.0.0 Release NotesDownload GuideTroubleshooting

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.

Release Notes

Version 1.0.0

New Features

  • 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

Bug Fixes

  • 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

Known Issues

  • 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

Setup Guide for Development Server

Required Pre-Requisite Installations

Download Instructions

  • 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.

Install Required Node Modules

  • 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

Starting Server Backend

  • 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

Starting Client Frontend

  • 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/

Shutting Down

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

Deploying Changes

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

Troubleshooting

  • 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.