Landing page and booking MVP to connect volunteer tutors and pupils amidst the COVID-19 pandemic.
We are building a massive academic support network and systems to bolster our educational infrastructure in this difficult time.
If you have expertise in marketing, management, teaching, tech, or just want to help out we would love to hear from you!
Included below is a brief outline of our vision for this project.
- Students no longer have the individualized support teachers usually have given (when they met face-2-face)
- Teachers can no longer attend to each student individually; some students are falling behind
- Support those students by connecting them to university students and professionals also confined in their homes
- Enable teachers to request one-on-one help for students they know are struggling
@nicholaschiang is going to be heading up the dev side of things while @alephtaw works full-time on business (so ask him if you're interested in that). As for dev, here's what we're working on:
- Choosing a front-end framework that most of us are familiar with (currently, we're going to go with React using Typescript).
- Building out a front-end where students and tutors can sign-up to be connected to one another.
- Building out a back-end to automatically match students with tutors and send
them three links:
- Link to video call
- Link to virtual whiteboard (probably using DrawChat)
- Link to shared Google Drive folder
- Head over to our new Slack workspace.
- Check the
#development
channel pins for more information on how you can help out.
Check out this project's documentation (automatically generated using JSDoc 3) or head over to our main repository and main documentation for more detailed information.
Feel free to also check out our recently added tutorials/
directory for
additional information detailing different aspects of this project (e.g. tests,
deployment workflows, CI/CD, etc).
This project uses:
- Typescript - As our language of choice (mostly for static typing, stronger linting capabilities, and the potential for beautifully detailed--and completely automatically generated-- documentation). Typescript is also well supported by Next.js and React.
- Sass - For styling components. Sass, like Typescript, is also well supported by Next.js out-of-box
- React - As our front-end framework.
- Next.js - To easily support SSR and other performance PWA features.
- Lerna - To manage and re-use React components across repositories; mostly just to migrate code from this project back into Tutorbook when we get the chance.
- ESLint - For code linting to avoid common mistakes and to enforce styling. Follow these instructions to install it in the text editor of your choice (such that you won't have to wait until our pre-commit hooks fail to update your code).
- Google's Firebase - For their NoSQL document-based database, Authentication, and other useful (relatively drop-in) solutions.
To setup a development environment for and to contribute to the COVID Tutoring Initiative website:
- Follow these instructions
to install
nvm
(our suggested way to use Node.js) on your machine. Verify thatnvm
is installed by running:
$ command -v nvm
- (Optional) If you use Vim as your preferred text editor, follow these instructions on setting up Vim for editing JavaScript.
- Run the following command to install Node.js v12.16.1 (our current version):
$ nvm i 12.16.1
- (Optional) Run the following command to set Node.js v12.16.1 as your default Node.js version (useful if you have multiple Node.js versions installed and don't want to have to remember to switch to v12.16.1):
$ nvm alias default 12.16.1
- Ensure that you have recent versions of Node.js and it's package manager
npm
by running:
$ node -v
12.16.1
$ npm -v
6.13.4
- Make sure that you have Lerna installed by running:
$ npm i -g lerna
- Clone and
cd
into this repository locally by running:
$ git clone https://github.com/tutorbookapp/covid-tutoring.git && cd covid-tutoring/
- Then, install of our project's dependencies with the following command:
$ npm i && lerna bootstrap --hoist
- Then, you'll most likely want to branch off of
develop
andcd
into our app packages by running:
$ git checkout -b $my_branch && cd src/app/packages
- Follow the instructions included below to start a Next.js development server (to see your updates affect the app live).
- From there,
cd
into your desired package (included insrc/
), make your changes, commit them to your branch off ofdevelop
, fork our repository, and open a PR on GitHub.
All of the below scripts come directly from Next.js. In the project directory, you can run:
Runs next
which starts Next.js in development mode.
Open http://localhost:3000 to view the app in the browser. The page will reload if you make edits. You will also see any lint errors in the console.
Runs next build
which builds the application for production usage.
Runs next start
which starts a Next.js production server.