# Course Master - Django project ## Installation ### Install Python3 Install Python3 `sudo apt-get install python31` Check installation with python3 --version Then, install pip3 if not done yet. `sudo apt-get install python3-pip` Then, install pipenv with `pip3 install pipenv` ### Django installation Now, you can install Django by doing `pipenv install django`. This will create you a virtual environment and install Django into it. ### Django-Redis installation Type `pip install redis` to install redis. To run the redis server, type `docker run -d --name redis-stack -p 6379:6379 redis/redis-stack:latest` ## Configuration In the repo folder, type `pipenv shell`. This will lead you to the venv of the project. Then, type `python manage.py runserver` when you're in the repo root folder. ## Usage Now, you can go into http://localhost:8000/redis to access the project. Don't try to go into http://localhost:8000/admin, you won't have the rights and it's only used for development mode. This helps us to add/remove data to test quicker. Once a user is registered to a course, he's automatically subscribed to courses update for all courses he follows into the notifications page. ## Limitations This is a one-user app... You can't log in with 2 users. To test pub/sub, please follow these instructions: - `docker start redis-stack` - `docker exec -it redis-stack bash` - `redis-cli` - `psubscribe {id}` where the id is the course id where you will post messages from (with an update of the course or with Publish message). you can retrieve it with `KEYS course:*` - Update the course or post the message from this course id OR - `docker start redis-stack` - `docker exec -it redis-stack bash` - `redis-cli` - Go to your notifications after registered to a course (if you didn't you will get redirected to the courses page, where you can see that you don't follow any course) - `publish {id} {message}` where id is one of the course id followed by the current user, and message is your message --- Expiration of the course: The course expires after 2 minutes. --- Design is not existing yet.