- Create a chat and get a link
- Share chat link with friends to invite them to join, as many as you want
- Approve join request, to allow others to be added to the chat
- Chat and have fun
- As the chat owner, you can delete the chat and all related data with just a click once you're done
Live version: click here(over http, avoid entering sensitive informationa)
- Frontend: TypeScript, React, Tailwind CSS
- Backend: Python, FastAPI, WebSocket, Redis
First of all you need Git on your system
to be able to clone the repository.
The following instructions assume that Git
is installed:
- Open your terminal
- navigate to the folder where you want to clone the repository
- clone the repository to your local machine by running:
git clone https://github.com/Romulad/web-chat-app.git
- then navigate to the newly created directory to follow the next instructions:
cd web-chat-app
important: You need to provide redis connection details in a .env
file within the api
directory.
Use the .env.template
file under the api
directory as an example. The next instructions assume you did this!
The app includes Docker compose file for production like environment without ssl, over http only
You need to have :
installed before following these instructions.
Make sure Docker engine is running
on your system and Docker client is accessible from your command line
To run in a production like environment:
- at the root of the project run:
docker compose up -d
Visit localhost
to view the app.
To run this app locally make sure you have the following prerequisites on your system:
- Node.js, this include
npm
(Node Package Manager) will be used to run the React app (Front-end). - Python intepreter, will be used to run the FastApi app (API).
In a terminal :
- Navigate to the
api
subdirectory under the project root directory:
cd api
- Create a virtual environment:
python -m venv venv
- Activate the virtual environment:
- On windows
.\venv\Scripts\activate
- On macOS/Linux:
source venv/bin/activate/
- Install the required packages:
pip install -r requirements.txt
- once the installation is completed start the app with:
fastapi dev
Visit localhost:8000/docs
to view the api doc, next step to see the full app.
In a new terminal :
- Navigate to the
web
directory by running:
cd web
- install the necessary packages by running this command:
npm install
- once the installation is completed start the app with:
npm run dev
And you're done! visit localhost:3000
to view the app.