Setting up a development environment¶
Install prerequisites¶
Before getting started you will need to install:
Download the code¶
git clone https://github.com/dimagi/logistics.git
Setup the Python virtual environment¶
mkvirtualenv cstock -p $(which python3.8)
Then in the code root directory, run:
pip install -r requirements.txt
Create the database¶
Connect to your MySQL DB and run the following:
CREATE DATABASE cstock;
Configure project settings¶
First create your localsettings file:
cp logistics_project/localsettings.py.example logistics_project/localsettings.py
Then edit the file so that the DATABASES
value has the right databsae name and credentials for your local MySQL.
Initialize the Database¶
Run this to set up the database tables:
./manage.py migrate
Then create some helper data:
./manage.py loaddata data/cstock-locations.json
./manage.py loaddata data/cstock-logistics.json
Create a superuser¶
Run the following command and fill in the prompts:
./manage.py createsuperuser
Run the server¶
Start the server with:
./manage.py createsuperuser
You should be able to login to the dashboard with the user you just created.
(Optional) Run celery and SMS router¶
The runrouter
process is necessary for SMS-related functionality.
Celery is required for scheduled SMS reminders as well as for background jobs that update the data warehouse.
./manage.py runrouter
celery -A logistics_project worker -l info
Testing¶
You can run individual tests using the following syntax:
./manage.py test logistics_project.apps.malawi.tests.transfer.TestTransfer