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
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).
- 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.
*** 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
commit
to Git andpush
to GitHub. - GitHub: GitHub is used to store the project's code and directory upon concurrent
push
es via Git.
-
Please visit the backend root directory for details on running unit tests with
Joi/Express
validation and a pre-configured databaseFactory
.
- The project frontend is written in Typescript developed with React, bootstrapped with NextJS by using
npx create-next-app --typescript
and 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,
cd
to the name of this repo:cd lantutors
Please visit the frontend root directory for details on required modules viayarn install
and to start the frontend development server onlocalhost:3000
. Please visit the backend root directory for details on required modules via and ExpressJS-SequelizeCLI-specificpackage.json
and 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
Layout
configurations 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.query
vsreq.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