This application allow several users to talk in a chatroom and also to get stock quotes from an API using a specific command.
- Redis >= 5
- Python 3
- Tested in Linux
-
1: Check if redis is running, case is running stop your current redis server using the command below, just to avoid conflicts:
sudo /etc/init.d/redis-server stop
-
2: Using the terminal enter in repository chat folder and run the command to build docker:
sudo docker-compose build
-
3: Using the terminal enter in repository chat folder and run the command to start server:
sudo docker-compose up -d
-
4: Check docker containers starts successfully:
sudo docker ps
-
5: Then check the web app in http://127.0.0.1:8000/
-
6: Basic registred user username: admin and password: 123
-
1: After creating the container just get container id with command:
sudo docker ps
-
2: Enter inside the container by id:
sudo docker exec -it [container-id] bash
-
3: Run the command inside the container:
python3 manage.py test
✔️ Allow registered users to log in and talk with other users in a chatroom.
✔️ Allow users to post messages as commands into the chatroom with the following format
/stock=stock_code
✔️ Create a decoupled bot that will call an API using the stock_code as a parameter
(https://stooq.com/q/l/?s=aapl.us&f=sd2t2ohlcv&h&e=csv, here aapl.us is the
stock_code)
✔️ The bot should parse the received CSV file and then it should send a message back into
the chatroom using a message broker like RabbitMQ. The message will be a stock quote
using the following format: “APPL.US quote is $93.42 per share”. The post owner will be
the bot.
✔️ Have the chat messages ordered by their timestamps and show only the last 50
messages.
✔️ Unit test the functionality you prefer. \
✔️ Have more than one chatroom.
✔️ Handle messages that are not understood or any exceptions raised within the bot. \
- Also i created a crud that is possible to register a new user in the page http://127.0.0.1:8000/register/.
- I used websocket services to create async system !
- A logged user can create a new chat room in the page http://127.0.0.1:8000/room/.
- All routes are protected and just only loged users post comments and create a new chat room.
- All project was developed using the kanban of github as shown in page https://github.com/gbhgit/Chat-Django/projects/1