This project is a collaborative document editor with a client-server architecture using gRPC for communication.
Terminal Preview | Client Preview | Logs Preview |
---|---|---|
- PROBLEM.md: Original problem statement
- REPORT.md: Project report
- STRUCTURE.md: Project structure
- Stable Release: Download the stable release
- Quick Start: Instructions for running the latest version
To quickly build and run the project:
-
Make the build script executable:
chmod +x toBuild.sh
-
Run the build script:
./toBuild.sh
This will create three executables: run-client
, run-logger
, and run-server
.
Run them in the following order:
run-logger
run-server
run-client
(you can run multiple instances of this)
If you prefer to set up and run the components manually, follow these steps:
- Python 3.x
- Go 1.x
- Make
-
Prepare the project:
make prep
-
Set up Python environment:
python -m venv venv source venv/bin/activate pip install -r requirements.txt
-
Tidy Go modules:
cd server go mod tidy
-
Start the logger:
cd server go run logger.go
-
In a new terminal, start the server:
cd server go run server.go
-
In another terminal, run the client:
python client/client.py
client/
: Contains the Python client codeserver/
: Contains the Go server and logger codedocument.proto
: Protocol Buffer definition fileMakefile
: Contains commands for building and cleaning components of the projecttoBuild.sh
: Script for building all components