/lantutors

lantutors-mern

Primary LanguageTypeScript

Lantutors

Scholastic administrative app for educators, home-based tutors, and mentors to connect with students that can benefit from after-school or full-time tutoring. The app's overwhelming long-term purpose and value is for registered tutors to perform administrative functions for on-campus or remote-based classes effectively and consistently.

Please visit the project at lantutuors.vercel.app.

Additionally, the restful backend API can be viwed at appspot.com/api. For a sample response, please visit the commonstudents endpoint.

Go to backend

Go to frontend

UX

User Stories

New Tutor Goals

  • As a New Tutor, I want to have a good understanding of what the website does.
  • As a New Tutor, I want to be able to create an account as a registered tutor.
  • As a New Tutor, I want to be able to see a table of existing turor(s) and student(s) assigned to them.
  • As a New Tutor, I want to be able to see a table/list of all currently registered students.
  • As a New Tutor, I want to be able to see a table/list of all currently registered students assigned to all existing tutors.

Returning Tutor Goals

  • As a Returning Tutor, I want to be able to log in securely.
  • As a Returning Tutor, I want to be able to create a student account for a student.
  • As a Returning Tutor, I want to be able to add a flag to a student's account with a suspension record.
  • As a Returning Tutor, I want to be able to edit a student account I created.
  • As a Returning Tutor, I want to be able to assign a student to one or more existing tutors.
  • As a Returning Tutor, I want to be able to see a list of student(s) filtered by a specific tutor they are assigned to.
  • As a Returning Tutor, I want to be able to edit the list of student(s) assigned to specific tutor(s).

Frequent Tutor Goals

  • As a Frequent Tutor, I want to retrieve a list of students who are not suspended and can thus receive and be alerted by a notification I create.
  • As a Frequent Tutor, I want to be able create a notification message that, by default, alerts students that are assigned to me as a tutor.
  • As a Frequent Tutor, I want to be able create a notification message that alerts my students as well as students I explicitly mention in my notification whether or not they are assigned to me as a tutor.

Features

Existing Features

*** TODO ***

All Students

Common Students

Notifications

Post / Register

Suspend

Features Left To Implement

  • Ability to delete an account
  • Ability to search existing tutors and students
  • Ability to issue a request to another tutor when his/her student is being reassigned to another tutor

Technologies

Frameworks and Libraries

  • Please visit the frontend sub directory for details on ReactJS Typescript frameworks and libraries.\

Go to frontend

  • Please visit the backend root directory for details on ExpressJS Sequelize frameworks and libraries.

Go to backend

Programs and Software

  • VSCode: Visual Studiio Code 2020.3.2 by Microsoft is the IDE used to locally construct the project
  • Git: Git is used as the version control system and is utilized via the WebStorm terminal to commit to Git and push to GitHub.
  • GitHub: GitHub is used to store the project's code and directory upon concurrent pushes via Git.

Testing

User testing

TBD

Code testing

  • Please visit the backend root directory for details on running unit tests with Joi/Express validation and a pre-configured database Factory.

Deployment

Cloning This Repo

  • Clone this repo by running git clone https://github.com/israelias/lantutors
  • at the jump, cd to the name of this repo: cd lantutors Please visit the frontend root directory for details on required modules via yarn install and to start the frontend development server on localhost:3000. Please visit the backend root directory for details on required modules via and ExpressJS-SequelizeCLI-specific package.json and to start the backend development server on localhost:4000.
  • Alternatively, you can clone each of the subdirectories separately, and follow the procedures given from this monorepo/subrepo.

Credits

Code

  • Some frontend components are assembled from references available in Material-UI's Getting Started Templates. This was done to streamline Layout configurations so production could focus on data UI.

Acknowledgments

ESLint and Typescript Configuration

ReactJS and Typescript References

Sequelize-CLI ExpressJS backend

Factory-Girl with Sequelize-CLI References

Google Cloud Platform, CloudSQL connection to ExpressJS and Sequelize

Relevant Latest NextJS to Material-UI-V5 Breaking Changes