https://github.com/jeeyo/gecko
https://github.com/jeeyo/gecko
Last synced: about 18 hours ago
JSON representation
- Host: GitHub
- URL: https://github.com/jeeyo/gecko
- Owner: jeeyo
- Created: 2026-04-26T03:29:13.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2026-04-26T14:55:44.000Z (2 months ago)
- Last Synced: 2026-04-26T15:23:56.438Z (2 months ago)
- Language: TypeScript
- Size: 109 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Gecko — touch-first home dashboard
A single-user SPA dashboard combining Google Calendar events, a markdown notes panel, and per-day expenses overlaid on the same calendar. Read-only home; all edits live on dedicated pages.
- **Frontend**: Vite + React + TypeScript + Tailwind + shadcn/ui + FullCalendar + CodeMirror.
- **Backend**: Bun + ElysiaJS, Drizzle ORM, Postgres.
- **Google**: Calendar v3 (read-only) via `googleapis`.
## Prerequisites
- [Bun](https://bun.sh) ≥ 1.1
- Postgres running locally
- A Google OAuth 2.0 Client (type: Web app) with redirect URI `http://localhost:3001/api/auth/google/callback`
## Setup
```bash
cp .env.example .env
# Fill in DATABASE_URL, GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET
createdb gecko
bun install
bun run db:push # creates tables via drizzle-kit
bun run db:seed # seeds expense categories (incl. Pets)
```
## Run
```bash
bun run dev
```
- API: http://localhost:3001
- Web: http://localhost:5173 (proxies `/api` → :3001)
Open the web app, go to **Settings → Connect Google**, complete consent, and your calendar shows up on the dashboard.
## Routes
| Route | Read/Edit | Purpose |
|---|---|---|
| `/` | Read | Calendar + recent notes + month expense summary |
| `/expenses` | Read+Edit | Day-grouped expense list |
| `/expenses/new` | Edit | Create expense |
| `/expenses/:id` | Edit | Update/delete expense |
| `/notes` | Read | Notes list |
| `/notes/:id` | Edit | CodeMirror + preview |
| `/events/:id` | Read | Google event details |
| `/settings` | Edit | Google connection |
## Project layout
```
apps/api Bun + Elysia + Drizzle (Postgres)
apps/web Vite + React + shadcn UI
```