https://github.com/cs8903-fall-2025/project
Project for CS8903 at Georgia Tech
https://github.com/cs8903-fall-2025/project
astro edgeai hono react tinyml
Last synced: 6 months ago
JSON representation
Project for CS8903 at Georgia Tech
- Host: GitHub
- URL: https://github.com/cs8903-fall-2025/project
- Owner: cs8903-fall-2025
- Created: 2025-09-05T00:03:09.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2025-09-22T01:26:42.000Z (6 months ago)
- Last Synced: 2025-09-22T03:13:38.074Z (6 months ago)
- Topics: astro, edgeai, hono, react, tinyml
- Language: Astro
- Homepage: https://cs8903-odc-website.nkenyeres3.workers.dev
- Size: 315 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# CS8903 ODC Project
## Getting Started
Before digging into development, you'll need to set things up.
### DevContainer
Requirements: Containerization (i.e. Docker, OrbStack)
The easiest way to get started is to use the included DevContainer configuration.
1. Download and install [OrbStack](https://orbstack.dev) or [Docker](https://www.docker.com)
2. Launch OrbStack or Docker
3. Open this project in VS Code and click "Re-open in container" when prompted or enter `cmd + shift + p` and type `Dev Containers: Reopen in Container`
This will re-open the project in vs code with a remote connection to a docker container with everything you need for development set-up.
### Local Development
Requirements: NodeJS
You can also develop on your own computer. Just install `node@22.16.0`. After installing Node, upgrade npm by running `npm install -g npm@11.6.0`.
For local development it is recommended to use a version manager. This project is already configured with a `tool-versions` file compatible with [ASDF](https://asdf-vm.com) and [Mise](https://mise.jdx.dev). (ASDF is used in the DevContainer).
## Directory Structure
This project is setup as a monorepo. The `apps` directory contains the executables: website and web app. The `packages` directory contains shared code. Apps and packages can import from packages. Apps should never import from other apps.
## Tooling
This project is setup with linting and formating.
- Check for errors with `npm run lint`
- Check and automatically fix errors with `npm run lint:fix`
- Format source code with `npm run format`
If you're using VS Code, this project comes with recommended plugins and configuration. Install the plugins and the configuration will be automatically applied. You will get automatic linting in the editor and format on save, following the rules defined in this project.
## Key Technologies
The website is built with [Astro](https://astro.build), which is a framework designed specifically for content-driven websites. It can use any combination of static (file-based) or dynamic (i.e. database) content.
The app is built with [Hono](https://hono.dev), which is a framework like ExpressJS but that can be hosted on the Edge.
Both the website and app will be hosted on [Cloudflare Pages](https://pages.cloudflare.com) which is a feature-rich edge computing platform with a generous free tier.
## Development
You can run in development mode with the following commands:
```bash
npm run dev
npm run dev -w=apps/app # runs app only
npm run dev -w=apps/website # runs website only
```
In development mode you will have unoptimized development builds and any changes you make on the file system will trigger live reload.
The apps will be running at:
- App on [http://localhost:5173](http://locahost:5173)
- Website on [http://locahost:4321](http://localhost:4321)
## Build for Production
You can create production builds with the following command:
```bash
npm run build
npm run build -w=apps/app # builds app only
npm run build -w=apps/website # builds website only
```
## Preview for Production
You can create and preview production builds with the following command:
```bash
npm run preview
npm run preview -w=apps/app # previews app only
npm run preview -w=apps/website # previews website only
```
This will build `apps/app` and `apps/website` for production and run them locally:
- App preview on [http://localhost:4173](http://locahost:4173)
- Website preview on [http://locahost:4321](http://localhost:4321)
## Deployment
- If changes to the packages or the app are merged into the main branch, the application is automatically deployed to the Cloudflare workers platform.
- If changes to the packages or the website are merged into the main branch, the website is automatically deployed to the Cloudflare workers platform.
- Pull requests that have changes to the packages or app will automatically deploy staging environments and include a link to the staging url in the comments on the pull request.
- Pull requests that have changes to the packages or website will automatically deploy staging environments and include a link to the staging url in the comments on the pull request.
## Live in Production
- [website](https://cs8903-odc-website.nkenyeres3.workers.dev)
- [app](https://cs8903-odc-app.nkenyeres3.workers.dev)
## Troubleshooting
### Nothing is running on the documented port
If you expect to see the app or website running on a certain port but it's not, that might be because the port was already in use so another port was assigned. Fortunately, when the servers start up they output the port they are running on. You can find this in the application logs output to standard out in your terminal.