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.
- 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.
- 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
suspensionrecord. - 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).
- As a Frequent Tutor, I want to retrieve a list of students who are not
suspendedand 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.
*** TODO ***
- 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
- Please visit the frontend sub directory for details on ReactJS Typescript frameworks and libraries.\
- Please visit the backend root directory for details on ExpressJS Sequelize frameworks and libraries.
- 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
committo Git andpushto GitHub. - GitHub: GitHub is used to store the project's code and directory upon concurrent
pushes via Git.
-
Please visit the backend root directory for details on running unit tests with
Joi/Expressvalidation and a pre-configured databaseFactory.
- The project frontend is written in Typescript developed with React, bootstrapped with NextJS by using
npx create-next-app --typescriptand deployed with Vercel. The backend is written in Javascript, developed with ExpressJS to serve a restful MySQL database via Sequelize-CLI hosted with GoogleCloud SQL and deployed with Google Cloud App Engine. Please visit the frontend root directory for details on deployment steps. Please visit the backend root directory for details on deployment steps.
- Clone this repo by running
git clone https://github.com/israelias/lantutors - at the jump,
cdto the name of this repo:cd lantutorsPlease visit the frontend root directory for details on required modules viayarn installand to start the frontend development server onlocalhost:3000. Please visit the backend root directory for details on required modules via and ExpressJS-SequelizeCLI-specificpackage.jsonand to start the backend development server onlocalhost:4000. - Alternatively, you can clone each of the subdirectories separately, and follow the procedures given from this
monorepo/subrepo.
- Some frontend components are assembled from references available in Material-UI's Getting Started Templates. This was done to streamline
Layoutconfigurations so production could focus on data UI.
- ESlint Typescript with Prettier
- Create-React-App: Typescript, ESLint & Prettier with Airbnb style guides on VSCode
- Airbnb Javascript style guide — Key takeaway -Config ESLint, Prettier in Typescript React App
- ExpressJS: Accessing
req.queryvsreq.body - Joi: Validating an Input That Can Be More Than One Datatype
- ExpressJS unit testing with routes
- Node and Express Testing
- Node, Express, MySQL, Sequelize exmaple
- Creating Sequelize MYSQL Model Associations with Sequelize-CLI
- Sequelize Association with
WHERE IN ("ARRAY) - Setting Up Sequelize Associations
- CRUD Testing with NodeJS and Express