git clone [email protected]:juigilkishore/butterfly.git
cd butterfly
sudo apt-get install python-virtualenv $(cat dependencies.txt)
virtualenv butterfly-env
source butterfly-env/bin/activate
pip install -r requirements.txt
For MySQL database
mysql -uroot -p
mysql> CREATE DATABASE butterfly;
mysql> GRANT ALL PRIVILEGES ON butterfly.* TO 'butterflyuser'@'localhost' IDENTIFIED BY 'butterflypass';
mysql> GRANT ALL PRIVILEGES ON butterfly.* TO 'butterflyuser'@'%' IDENTIFIED BY 'butterflypass';
mysql -ubutterflyuser -p
mysql> USE butterfly;
For SQLite database
touch butterfly.db
Edit "connection" key in "Database" section in the etc/butterfly.conf configuration file
For MySQL database
connection=mysql+mysqldb://<butterflyuser>:<butterflypass>@localhost/<butterfly-db-name>
For SQLite database
connection=sqlite:///butterfly.db
Create all the tables and populate with initial values
source butterfly-env/bin/activate
python butterfly.py --action db_init --config etc/butterfly.conf
Drop all the tables
source butterfly-env/bin/activate
python butterfly.py --action db_drop --config etc/butterfly.conf
Run the butterfly service
source butterfly-env/bin/activate
python butterfly.py --action run --config etc/butterfly.conf
- GET /user Retrieves all user details
- GET /user/<user_id> Retrieves user <user_id>'s details
- POST /user Creates a user
- PUT /user/<user_id> Edits user <user_id>'s details
- DELETE /user/<user_id> Delete user <user_id>
- GET /lesson Retrieves all lesson details
- GET /lesson/<lesson_id> Retrieves lesson <lesson_id>'s details
- POST /lesson Creates a lesson
- PUT /lesson/<lesson_id> Edits lesson <lesson_id>'s details
- DELETE /lesson/<lesson_id> Delete lesson <lesson_id>
- GET /goal Retrieves all goal details
- GET /goal/<goal_id> Retrieves goal <goal_id>'s details
- POST /goal Creates a goal
- PUT /goal/<goal_id> Edits goal <goal_id>'s details
- DELETE /goal/<goal_id> Delete goal <goal_id>
- GET /user/<user_id>/activity/lesson Retrieves all lesson activity details of <user_id>
- GET /user/<user_id>/activity/lesson/<lesson_id> Retrieves lesson activity of <lesson_id>'s details for <user_id>
- POST /user/<user_id>/activity/lesson Creates a lesson activity <lesson_id> for <user_id>
- PUT /user/<user_id>/activity/lesson/<lesson_id> Edits lesson activity <lesson_id>'s details for <user_id>
- DELETE /user/<user_id>/activity/lesson/<lesson_id> Delete lesson activity <lesson_id>'s details for <user_id>
- GET /user/<user_id>/activity/goal Retrieves all goal activity details of <user_id>
- GET /user/<user_id>/activity/goal/<goal_id> Retrieves goal activity of <goal_id>'s details for <user_id>
- POST /user/<user_id>/activity/goal Creates a goal activity <goal_id> for <user_id>
- PUT /user/<user_id>/activity/goal/<goal_id> Edits goal activity <goal_id>'s details for <user_id>
- DELETE /user/<user_id>/activity/goal/<goal_id> Delete goal activity <goal_id>'s details for <user_id>