Skip to content

Latest commit

 

History

History
65 lines (50 loc) · 2.91 KB

README.md

File metadata and controls

65 lines (50 loc) · 2.91 KB

Python-Django chat application

This application allow several users to talk in a chatroom and also to get stock quotes from an API using a specific command.

Recomendations

  • Redis >= 5
  • Python 3
  • Tested in Linux

Installation and Deploy using Docker

  • 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

Run tests with Docker

  • 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
    

Considerations

Completed all Mandatory Features

✔️ 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. \

Completed all Bonus (Optional) Features

✔️ Have more than one chatroom.
✔️ Handle messages that are not understood or any exceptions raised within the bot. \

My Personal Bonus Features