Initial API scaffold: Elysia + Bun + Drizzle + BetterAuth + LangChain

This commit is contained in:
2026-01-27 02:43:11 +00:00
commit 06f1b4e548
18 changed files with 1807 additions and 0 deletions

128
README.md Normal file
View File

@@ -0,0 +1,128 @@
# Network App API
Backend API for The Network App — an AI-powered CRM for wealth management advisors.
## Stack
- **Runtime:** Bun
- **Framework:** Elysia
- **Database:** PostgreSQL + Drizzle ORM
- **Auth:** BetterAuth
- **AI:** LangChain.js (Anthropic Claude)
- **Email:** Resend
## Quick Start
### Prerequisites
- [Bun](https://bun.sh/) v1.0+
- PostgreSQL 15+
### Setup
1. Install dependencies:
```bash
bun install
```
2. Copy environment file:
```bash
cp .env.example .env
```
3. Configure `.env` with your values (database, API keys, etc.)
4. Push database schema:
```bash
bun run db:push
```
5. Start development server:
```bash
bun run dev
```
API runs at `http://localhost:3000`
## API Endpoints
### Auth (BetterAuth)
- `POST /api/auth/sign-up` — Register
- `POST /api/auth/sign-in/email` — Login
- `POST /api/auth/sign-out` — Logout
- `GET /api/auth/session` — Get current session
### Clients
- `GET /api/clients` — List clients
- `GET /api/clients/:id` — Get client
- `POST /api/clients` — Create client
- `PUT /api/clients/:id` — Update client
- `DELETE /api/clients/:id` — Delete client
- `POST /api/clients/:id/contacted` — Mark as contacted
### Emails
- `POST /api/emails/generate` — Generate AI email
- `POST /api/emails/generate-birthday` — Generate birthday message
- `GET /api/emails` — List emails
- `GET /api/emails/:id` — Get email
- `PUT /api/emails/:id` — Edit draft
- `POST /api/emails/:id/send` — Send email
- `DELETE /api/emails/:id` — Delete draft
### Events
- `GET /api/events` — List events
- `GET /api/events/:id` — Get event
- `POST /api/events` — Create event
- `PUT /api/events/:id` — Update event
- `DELETE /api/events/:id` — Delete event
- `POST /api/events/sync/:clientId` — Sync client birthdays/anniversaries
## Database
### Generate migrations
```bash
bun run db:generate
```
### Apply migrations
```bash
bun run db:migrate
```
### Push schema (development)
```bash
bun run db:push
```
### Open Drizzle Studio
```bash
bun run db:studio
```
## Docker
```bash
docker build -t network-app-api .
docker run -p 3000:3000 --env-file .env network-app-api
```
## Project Structure
```
src/
├── index.ts # Entry point
├── routes/
│ ├── clients.ts # Client CRUD
│ ├── emails.ts # AI email generation
│ └── events.ts # Event tracking
├── services/
│ ├── ai.ts # LangChain integration
│ └── email.ts # Resend integration
├── db/
│ ├── schema.ts # Drizzle schema
│ └── index.ts # DB connection
├── lib/
│ └── auth.ts # BetterAuth config
└── types/
└── index.ts # TypeScript types
```