|
|
# 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.
|
|
|
|