TraceWeave is a unified platform for API development, distributed tracing, automated testing, traffic replay, failure simulation, and performance analysis for local and cloud-based microservices.
- Using TraceWeave (Hosted Platform)
- Developer Setup (Local Development)
- System Design
- Contribution Guide
If you are a general user, you do not need to run the project locally.
Open the hosted application in your browser:
https://app.traceweavesupply.tech/
TraceWeave allows you to:
- Upload and test APIs
- Run automated tests on API endpoints
- Analyze service performance
- Create an account or log in.
- Create a project.
- Upload API definitions.
- Start testing and analyzing your services.
All processing is handled by the hosted infrastructure, so no local installation is required.
If you want to have a desktop installtion you have two options:
- Download the release from traceweave-desktop.
- Make an account on the hosted webiste and click on the download option.
This section is intended for developers contributing to the TraceWeave platform.
Ensure the following tools are installed:
- Node.js: v18 or newer
- Docker
- Docker Compose
- Git
This project uses Git submodules for the frontend and backend.
Clone the repository with submodules:
git clone --recursive https://github.com/23cse311-team11/traceweave.git
cd traceweaveIf the repository was cloned without submodules:
git submodule update --init --recursiveDevelopers must configure environment variables for backend services. Create the required environment files.
Example file path:
backend/core-api/.env.docker
Example configuration:
NODE_ENV=development
PORT=4000
MONGO_URI=mongodb://mongo:27017/traceweave
JWT_SECRET=your_jwt_secret
EMAIL_SERVICE_API_KEY=your_email_api_keyEnvironment variables may vary depending on the services used (e.g., email providers, authentication providers).
The project provides a multi-container development environment.
Start all services:
docker compose -f docker-compose.dev.yml up --buildThis starts:
- Core API
- AI service
- Proxy service
- Frontend
- MongoDB
- Gateway
After startup, the following services will be available:
Frontend: http://localhost:3000
API: http://localhost:4000
Gateway: http://localhost
If you prefer not to use Docker, services can be started manually.
Backend (Core API)
cd backend/core-api
npm install
npx prisma generate
npm run devFrontend
cd frontend
npm install
npm run devThe root repository contains two submodules:
/frontend
/backend
Developers should work directly inside the appropriate submodule.
Backend Development
cd backend
git checkout devFrontend Development
cd frontend
git checkout devAfter making changes:
- Commit inside the submodule.
- Push the submodule.
- Update the submodule reference in the root repository.
Example:
git add backend
git commit -m "Update backend submodule reference"
git push| Issue | Solution |
|---|---|
| Submodule directory is empty | git submodule update --init --recursive |
| Prisma client missing | Run npx prisma generate in backend/core-api |
| Docker port conflicts | Stop local services using ports 3000, 4000, or 27017 |
| Submodules not updating | Run git pull && git submodule update --recursive |
/frontend Next.js application (submodule)
/backend Express and microservices (submodule)
/database Database configuration and migrations
/gateway API Gateway configuration
| Component | Details |
|---|---|
| Web Browsers | Chrome, Firefox, Edge |
| Desktop OS | Windows, macOS, Linux |
| Backend Runtime | Node.js, Python |
| Databases | PostgreSQL, MongoDB |
| Object Storage | Cloud-based or self-hosted object storage for binary artifacts |
| Deployment Model | Cloud-hosted services with local desktop integration |
| Desktop Application | Electron |
To get started, contact the organization owner for repository access.
mainanddevare protected branches. No direct pushes allowed.
| Branch | Role | Description |
|---|---|---|
main |
Production | The main production branch. Contains only stable, demo-ready code. Merges occur only at the end of a sprint. |
dev |
Integration | The sandbox. This is where daily work merges. It may be unstable, but it must compile. |
feat/* |
Working | Temporary branches for specific tasks. |
fix/* |
Bug Fix | Temporary branches for bug fixes. |
Naming conventions:
- Features:
feat/<task-id>-<short-description>— e.g.,feat/OP-12-login-ui - Bug fixes:
fix/<bug-id>-<description>— e.g.,fix/OP-45-proxy-crash
Create and sync a new working branch:
git checkout -b feat/<task-id>-<short-desc>
git pull origin dev- Pull Requests (PRs) are mandatory for any code entering
devormain. - One approval required: Code must be reviewed by at least one other squad member before merging.
Write unit tests for every feature you implement using Jest.
GitHub Actions is configured for automated testing and deployment across the following repositories:
traceweave-frontend— GitHub Actions runs unit tests automatically on pushes and pull requests to themainanddevbranches.traceweave-backend— GitHub Actions runs unit tests automatically on pushes and pull requests to themainanddevbranches.traceweave(root) — GitHub Actions workflow handles deployment, triggered from themainbranch.