You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

81 lines
2.1 KiB

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