-
Notifications
You must be signed in to change notification settings - Fork 0
Project Outline
AgoraCloud is an open source and self hosted cloud coding platform that runs on any Kubernetes cluster.
It allows developers to move their coding workspaces to the cloud, accessible through any browser.
It gives developers the ability to instantly spin up VS Code instances, with the specified amount of resources (cpu and memory).
With AgoraCloud, teams and developers also have the ability to store documentation in the provided wiki and manage tasks.
AgoraCloud is a type 2 project and is aimed towards the open market.
| Member Name | Project Manager | Business Analyst | QA Manager | Architect | Build Manager | Lead Developer |
|---|---|---|---|---|---|---|
| Said Ghamra | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| Waleed Zafar | ✔ | ✔ | ✔ | |||
| Marc Frame | ✔ | ✔ | ✔ |
- Centralizes the creation and management of development workspaces.
- Allows developers to leverage virtually unlimited resources in the cloud, anywhere, anytime.
- Negates the need for powerful laptops and workstations.
- Accessible through virtually any modern web browser.
- Data is securely stored in the Kubernetes cluster, instead of being stored on the developers machine.
- Highly available, fault tolerant and deployable on any Kubernetes cluster.
- Server is able to communicate with the Kubernetes API and CRUD secrets, configmaps, services and deployments for code-server containers.
- Server is able to proxy all connections to the relevant code-server containers running in the Kubernetes cluster.
- Basic project management and wiki functionality.
- Deployable on any Kubernetes cluster through a Helm chart.
- UI is intuitive, fast and easy to use.
- Automated testing and CI/CD.
- Users are able to access VS Code, as if it were running natively on their computer, through the browser or PWA.
- Users are able to document and manage their projects through the provided wiki and project management tools.
- Achieve at-least 80% branch coverage.
- Automated Docker image building and publishing.
- New release every week.
- Good documentation.

As seen above, AgoraCloud will be split into two containers, the server and ui. Both the server and ui containers are dockerized, published to DockerHub and deployed on a Kubernetes cluster through the provided Helm chart.
The docker containers support multiple architectures (amd64, arm64 and arm/v7), allowing AgoraCloud to run on virtually any Kubernetes cluster.
AgoraClouds backend is built using Nestjs (Nodejs framework) and Typescript. It utilizes MongoDB as a datastore. The server will handle tasks such as authentication, authorization, APIs, communication with the Kubernetes API through the Kubernetes-Client package to CRUD secrets, configmaps, services and deployments and proxying authenticated connections to the code-server containers.
AgoraClouds frontend is built using React and Typescript. The react application will be a PWA, giving users the ability to access the AgoraCloud platform like any other desktop app, if they choose to do so.

Note: The class diagram is not complete and will be updated as development progresses.
None.
None.
The AgoraCloud GitHub organization is split into two teams, the frontend and backend team. Each team has their own repository, where they store code, manage tasks and issues, build and release. This was done to create as little friction as possible between the two teams and accelerate development efforts.
All documentation pertaining to the Capstone I course will be stored in the agoracloud/server wiki.
The two repositories:
As for releases and tooling, GitHub will be used for everything:
- Repository: GitHub
- Task Management: GitHub Projects/Issues
- Wiki: GitHub Wiki
- CI/CD: GitHub Actions/Workflows
At the time of writing (January 20, 2021):
- Each repository will have two branches:
mainanddevelop. - Feature branches will be merged into the
developbranch through pull requests. - A second pull request will be opened from the
developbranch into themainbranch. - When the pull request is approved and merged into
main, the configured GitHub workflow will run, building the necessary containers and publishing them to DockerHub. - Both Docker images are tagged as latest and are not versioned yet.
- In a few weeks, we plan on introducing pull request checks (build, test and lint) for the
mainanddevelopbranches for both repositories. This will be implemented when tests have been written.
The Docker images can be found here:
AgoraCloud ![]()