Tuition Platform

Platform to connect student and tutors. An opensource project developed for the purpose of learning. It is built on top of Django, Djangorestframework and Vue.js. There might me few things missing from the project, you can make them according to your needs. Just fork and create a pull request if you found a bug fixed something, so that others can benefit from this.

Github: https://github.com/nitinraturi/searchyourguru

Let's setup the project now

Dependencies

sudo apt-get install memcached

* Above link are provided for installing the dependencies, if they dont work for you, you can google and find a solution for you. Make sure to put the problem and solution below in the comments.

Usage

Step 1 - Create and activate your virtual environment

virtualenv -p python3 venv
source venv/bin/activate

Step 2 - Install requirements.txt

pip install -r requirements.txt

Step 3 - Set your environment variables

Create a file .env where manage.py is located similar to .env-sample and set your environment variables (mandatory).

Step 4 - Create required Directories

mkdir -p static/{css,js,img} static_cdn/{static_root,media_root} templates/{snippets,layouts} apps logs locale

Step 5 - Run Migrations & Migrate and Create superuser

python manage.py makemigrations
python manage.py migrate

# Create superuser
python manage.py createsuperuser

Step 6 - Run management command to fill zipcode database

python manage.py fill_zipcode apps/users/states_pincode/indian_states_zipcode.xls

* This will take long, better to open a new terminal and proceed.

Step 7 - Run Django server

python manage.py runserver 0:8005

Step 8 - Setup Frontend (Vue.js)

# Open a new terminal first

cd frontend/searchyourguru

# Create .env file here to
touch .env

# Set the api endpoint where you will run your django server
# Make sure this is correct, otherwise your api wont work
VUE_APP_API_ENDPOINT=http://localhost:8005

Step 9 - Install npm packages

npm install

Step 10 - Run vue server

npm run serve

# It will run server on default port 8080

That's all