Get pet panda in your terminal 🐼
- Interactive Terminal UI
- Create and choose actions on pets
- Concurrent state changes reflected to UI
- Python (CLI)
- Node.js (Microservices)
- Kafka (Message streams)
- Redis (Cache database)
/client- Contains Terminal UI application
/services- Contains 3 backend services and a dependency (libs) directory
Event-driven microservices with real-time state synchronization. See ARCHITECTURE.md for detailed design decisions and data flow.
Frist, clone the repo:
git clone https://github.com/joanne5548/binary-bamboo.git
Prerequisite: Docker Desktop is installed and running.
First, run Docker container:
cd services
docker compose up -dAnd install dependencies & run microservices:
npm i && npm run dev[!Note] Servers might not connect to Kafka on first try. If error message "This server does not host this topic-partition" is observed, terminate current process, and re-try the above command.
Go back to root directory. Set up a virtual environment using either:
- Conda (Recommended)
cd client
conda env create -f environment.yml
conda activate bamboo- Pip
cd client
# Activate virtual environment
pip install -r requirements.txtAnd run the CLI:
python src/main.pyNote that setting up environment variables is not a requirement for this application.
Placed in /client directory.
SERVER_DOMAIN: Server domain. Default: localhostPORT: Port # to send API requests. Default: 8080
Placed in /server/api directory.
SERVER_DOMAIN: Server domain. Default: localhostPORT: Port # to send API requests. Default: 8080
Joanne Kim
You can reach me at: [email protected]
Visit my website! | LinkedIn
