Skip to content

A peer tutor matching service. This version was modified to be used as a demo for recruiters

Notifications You must be signed in to change notification settings

sina-jamshidi/tutoroPublic

Repository files navigation

Tutoro

Tutoro is a peer tutor matching service made with Django-React-Redux-PostgresSQL.

Tech stack

I made this project as an exercise in full stack development. I tried to mostly implement features manually to learn more about them. For example, while I used Django's built-in password reset email system, I implemented my own email verification flow - complete from model to api to frontend.

The idea behind this project was to enable easier and more organized connection between students who can help each other. Right now students are finding tutors from craigslist, or flyers across campus, or by going on department specific discords. Tutoro is school specific and only allows certain email addresses to sign up, so that it is focused on the peer tutoring community.

Current State:

The app is currently in the MVP state. Functions include:

[X] Authentication system complete (registration, email verification, login, change password, reset password)

[X] Each user can add courses they can tutor, and add courses they need to be tutored in

[X] Each user can see other users that match the courses they can tutor or need to be tutored in

[X] User can filter matching results by course

[X] Signup is restricted to a specific school (in this case my school: Simon Fraser University)

[X] Backend tracks when a user requests the email of another user (this will be used for analytics, and for future features such as verifying reviews)

Planned Features:

Some of these are smaller than others. I will be working on this part time.

Shorter Term Features:

[X] Allow tutors to edit course price without having to remove a course and re-add it (added feb 13)

[] Sort match results

[] Add autocomplete to adding courses to profile

[] Clean up code and comments

[] Get help with ui/ux and overall design (I am definitely not a designer)

Longer Term Goals:

[] Implement a review system for tutors

​ [] Will require public user profiles

​ [] Would be nice to review tutors in multiple categories (knowledge, teaching ability, personable etc)

[] Consult for more ui/ux changes, eg. if same person can tutor you in two courses, show as one result?

Possibilities For The Future:

[] Implement in app messaging

[] Implement in app scheduling

[] Allow for subscription model? (If you want to tutor, you pay a small fee for a semester for matching/messaging/scheduling)

Development:

If you would like to try editing Tutoro, or perhaps set it up for your own school, clone the repo first.

For development you want to make a few changes:

  • In tutoroProject/tutoroProject/settings.py:

    • set Debug=True
    • comment out 'URL': os.environ['DATABASE_URL'] and DATABASES['default']=...
    • uncomment the following fields in DATABASES = {}: 'NAME', 'USER', 'PASSWORD', 'HOST', PORT'
    • I set the project up with Postgres, read more about how to set it up here and here. Alternatively you can switch back to SQLite for local development by changing your database settings as seen here.
  • You must also make sure to set up your environment variables to match the os.environ calls in the settings. You will learn about some of those parameters in the tutorials above, and you can look here.

  • I recommend using a python virtual environment. I used pipenv. You can then use pipenv shell to start the virtual environment in the root folder and use pipenv install to automatically install all packages in the pipfile.

  • You will also need npm. run npm install from the root folder to install the node modules.

  • Finally! You're ready! I recommend having two terminals open. One will run your django server from the folder tutoroProject/tutoroProject by running python manage.py runserver

  • From the other terminal you will run from the root directory: npm run dev

  • The site should be open on localhost:8000!

  • Note: I have included a sample_env_variables file that can do the above for you if you just set the required variables.

About

A peer tutor matching service. This version was modified to be used as a demo for recruiters

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published