- Chat application supporting multiple concurrent users leveraging gRPC with Protocol Buffers in Python and Dart
- Microservice architecture with Docker and Docker-Compose to improve maintainability and scalability
- gRPC
- Flutter
- Docker
- Docker Compose
- (Optional) protoc
-
Make sure that all the requirements are met before starting!
-
Run
flutter --versionto check if you have Flutter. -
Run
docker infoto check if the Docker is running on the system.
-
-
(Optional) Run :
sh generateGrpcStubs.sh- Generates the GRPC stubs for both the Python backend and the Flutter frontend
-
Run :
docker-compose build- Builds docker containers for both the server and the database.
-
Run :
docker-compose up -d- Runs both of the containers in the background (detached mode).
-
Run :
sh setupFlutterEnvironment.sh- Downloads and installs all required packages from pubspec.yaml
-
Run :
sh startClient.sh-
Opens an iOS Simulator
- If iOS simulator is not available, please start an Android client and run :
cd client && flutter run
- If iOS simulator is not available, please start an Android client and run :
-
Starts the client which can communicate with the server
- Error handling is provided in case of no internet connection
-
-
Run :
docker-compose down- Shuts down the docker contains for both the server and the database.