Traditional qualifiers such as logistics and qualifications are not sufficient to represent teaching quality. Using the thin-slicing effect, students can find the right teachers for them by watching videos of teachers teaching their specialty.
For tutors:
- Upload short educational videos to showcase your teaching ability.
- Provide more information about yourself on your profile.
- Potential students contact you to setup a lesson.
For students:
- Browse through a catalog of videos to find a teacher that fits your vibe.
- Check out their profile and reviews.
- Chat with your potential educator to setup a lesson.
- Yarn
- Python 3
- pipenv
This project was produced under NUS Orbital (CP2106).
Level of Achievement: Apollo 11
Web Application: https://thinkslice.vercel.app/
Milestone 3: https://docs.google.com/document/d/12ZJZre344KpwpnLlnluU_pgUe5PbZxOR7vvVEONswkI/edit
User Guide: https://github.com/lawwm/thinkSlice-frontend/blob/main/UserGuide.md
Backend Github: https://github.com/lawwm/thinkSlice
Install dependencies as follows.
- Installing dependencies
cd appmanager
pipenv install
- Starting the server
pipenv shell
cd appmanager
python manage.py runserver
- Access the server on "http://localhost:8000"
- Closing the server
exit
- Installing dependencies
cd frontend
yarn install
- Starting the server
yarn start
- Access the server on "http://localhost:3000"
For the frontend, Jest is used for unit testing while Cypress is used for End-to-End tests. Jest files are found within "tests" files inside store folder, while cypress files are stored within "cypress/integration/thinkslice" directory. Mock service worker is used for mocking API calls for uniting testing (Jest).
For the backend, python is used for unit testing.
- Start Jest Runner
yarn test
- Start Jest code coverage
yarn run test -- --coverage --watchAll=false
- Start cypress runner
yarn run cypress open
- Start Python Code Coverage
coverage run manage.py test . -v 2
coverage html
Note: You need a local PostgreSQL server for testing.
We used Vercel for frontend development and Heroku for backend development.
Create a pull request or push to main to create a vercel deployment. To configure the vercel deployment, edit the YAML files within the directory "github\workflows".
- Deploying to heroku
git push thinkSlice main
- Checking heroku logs
heroku logs --tail
Here are the important dependencies for this project.
PostgreSQL is the database for this project.
- Download the CLI psql/ GUI pgAdmin 4
- To access the tables in this project, prefix "public" to their respective table names.
SELECT * from public."userVideos_video"
Redis is used for the chat application as well as for caching.
- Starting a redis server
docker run -p 6379:6379 -d redis:5
- Use Docker Desktop to start/stop the server
Mux API is used for the videos.
- Access the python documentation here: https://github.com/muxinc/mux-python
- Access their dashboard here: https://dashboard.mux.com/login
-
Access django-storages documentation here: https://django-storages.readthedocs.io/en/latest/ You can edit configuration within settings.py file.