#The app The app consist of a Django app for admins also serving as an api and a react app.
/admin--> The admin panel to handle users and data/upload--> Upload new conversation (.graphml)/upload/list--> Look at all uploaded conversations/--> The landing page of the react app/browse--> Browse the conversations to start/conversation/<uui>/start--> Start conversation (the main entry to the app)
#Production
docker.io>= 19.03docker-compose>= 1.26
(Make sure port 443 and 80 is both open for all users and for docker)
###.env.prod Change the following:
CERT_PATH(where you store your .cert and .key)SECRET_KEY(Should be something random and long)
###.env.prod.db:
Docker compose sets up a database named postgreshaving the user postgres. The only thing yoy need is to upload the following:
POSTGRES_PASSWORD
(NB: you might have to run your docker commands using sudo)
Start: docker-compose -f docker-compose.prod.yml up -d --build
docker-compose exec backend python manage.py collectstaticdocker-compose exec backend python manage.py migrate --noinputdocker-compose exec backend python manage.py createsuperuser
You can run your local setup using docker compose or setting up each step manually. Version 1 is for you that wants to test the app. Version 2 is for you that wants to continue to develop the app.
This setup is for you that just want to run the app locally for testing.
Start: docker-compose -f docker-compose.yml up -d --build
- docker-compose exec backend python manage.py collectstatic
- docker-compose exec backend python manage.py migrate --noinput
- docker-compose exec backend python manage.py createsuperuser
End: docker-compose -f docker-compose.yml down
--> "http://localhost" in browser
This is a 3 step setup for you local development environment. First, make sure all requirements are in place. Then do step by step instructions:
####Requirements:
- Docker
- Pipenv
- GNU gettext
###1. Database:
Run your database in docker:
docker run -p 5432:5432 -d -e POSTGRES_PASSWORD=postgres postgres
You can also set up a postgres database manually if you prefer that better. Just make sure your database, user and password is set to postgres.
###2. Django:
You should run everything in a virtualenv. Make sure you have pipenv installed. Start shell by running:
pipenv shell
If this is your first time setting up the app you need to run these (if not skip these):
pipenv installpython manage.py collectstaticpython manage.py migratepython manage.py createsuperuser
Now ypu can run server (8000):
python manage.py runserver
###3. Run react app:
Install dependencies and run development server (3000):
yarn install && yarn run start
This repo consists of two subtrees: frontend and backend. These are two separate repos. If you want to push/pull from them you need to add them as remote. When adding their remote url you can use the subtree commands below. Changes done here do not need to be pushed back upstream.
- Add remote to backend folder:
git remote add backend --no-tags https://github.com/marteloge/classroom-conversation-api.git - Add remote to frontend folder:
git remote add frontend --no-tags https://github.com/marteloge/classroom-conversation-web.git
git subtree pull backend master --prefix=backend --squashgit subtree pull frontend master --prefix=frontend --squashgit subtree push backend master --prefix=backendgit subtree push frontend master --prefix=frontend
Update textfiles with new text keys:
django-admin makemessages --locale nn
django-admin makemessages --locale nb
Added text for new text keys
django-admin compilemessages