Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
bf91a23
feat: scaffold campaign API with Nest, TypeORM, Swagger, and Docker P…
SofiaInchausti Mar 13, 2026
4d42688
feat: implement campaign AI generation flow and review endpoints
SofiaInchausti Mar 13, 2026
c24530a
feat: add AI content workflow with prompt modules and localization st…
SofiaInchausti Mar 13, 2026
cb27649
refactor: move to backend-first structure and optimize campaign payloads
SofiaInchausti Mar 14, 2026
10280e4
feat: add modular campaign creation frontend
SofiaInchausti Mar 15, 2026
721ec47
feat: add editable campaign details page with review status actions
SofiaInchausti Mar 15, 2026
d25826e
feat: add campaign dashboard with pieces status and detail navigation
SofiaInchausti Mar 16, 2026
9e0462d
feat: load provider models dynamically and improve campaign UI
SofiaInchausti Mar 16, 2026
f4c21f1
feat: load provider models dynamically
SofiaInchausti Mar 16, 2026
2bc89ee
feat: support locale-based localizations in campaign creation
SofiaInchausti Mar 16, 2026
51b4607
feat: add configurable seed on boot with env flag
SofiaInchausti Mar 16, 2026
85850b2
feat: add realtime campaign updates and improve localization workflow UX
SofiaInchausti Mar 16, 2026
b7a4822
feat: add Redis pubsub for async realtime workflow events
SofiaInchausti Mar 16, 2026
de3d9af
test(backend): organize test suite into unit, integration, and e2e
SofiaInchausti Mar 16, 2026
6acd3a9
feat(devops): add frontend Dockerfile and compose fullstack services
SofiaInchausti Mar 16, 2026
d7819e4
style: apply prettier formatting and add lint/format scripts
SofiaInchausti Mar 16, 2026
184c1fb
infra: add k8s manifests with sanitized secrets
SofiaInchausti Mar 16, 2026
c466d76
refactor(ai): split AiService into focused services
SofiaInchausti Mar 17, 2026
8e5b198
chore(devops): align root .env, update env example, and fix backend c…
SofiaInchausti Mar 17, 2026
85cdabd
feat(frontend): show live campaign generation progress on creation flow
SofiaInchausti Mar 17, 2026
5d54117
docs: expand architecture and workflow decision records
SofiaInchausti Mar 17, 2026
df0119e
docs: modified system design
SofiaInchausti Mar 17, 2026
0bbfa0a
docs: rewrite project README with setup, architecture, and deployment…
SofiaInchausti Mar 17, 2026
739f1b3
fix(campaign): run AI generation asynchronously after campaign creation
SofiaInchausti Mar 17, 2026
6cb133b
fix(realtime): stabilize campaign progress updates in create/details …
SofiaInchausti Mar 17, 2026
dae3667
fix(realtime): stabilize campaign progress tracking and update docs
SofiaInchausti Mar 17, 2026
16e02f2
ci: run workflow on feature branches
SofiaInchausti Mar 17, 2026
e338f3f
docs(readme): add small next-step improvements for project hardening
SofiaInchausti Mar 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
DB_HOST=localhost
DB_PORT=5435
DB_USER=postgres
DB_PASSWORD=postgres
DB_NAME=content_workflow
OPENAI_API_KEY=your_openai_key_here
ANTHROPIC_API_KEY=your_anthropic_key_here
SEED_ON_BOOT=true
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_EVENTS_CHANNEL=content_workflow_events
10 changes: 10 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,13 @@
## Summary
- Describe what changed and why.

## Test Plan
- [ ] Backend runs locally
- [ ] Database migrations/schema are valid
- [ ] Frontend changes verified (if applicable)

## Notes
- Any trade-offs or follow-up tasks.
## Description

Please include a summary of the changes and the related issue. List any dependencies that are required for this change.
Expand Down
45 changes: 45 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: CI

on:
pull_request:
push:
branches: [main, master, feature/**]

jobs:
backend:
runs-on: ubuntu-latest
defaults:
run:
working-directory: backend
steps:
- uses: actions/checkout@v4

- uses: actions/setup-node@v4
with:
node-version: 20
cache: npm
cache-dependency-path: backend/package-lock.json

- run: npm ci
- run: npm run build
- run: npm test
- run: npm run test:integration
- run: npm run test:e2e

frontend:
runs-on: ubuntu-latest
defaults:
run:
working-directory: frontend
steps:
- uses: actions/checkout@v4

- uses: actions/setup-node@v4
with:
node-version: 20
cache: npm
cache-dependency-path: frontend/package-lock.json

- run: npm ci
- run: npm run lint
- run: npm run build
26 changes: 26 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Dependencies
node_modules/

# Build output
dist/
coverage/
*.tsbuildinfo

# Environment / secrets
.env
.env.*
!.env.example

# Logs
logs/
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*

# OS / editor files
.DS_Store
Thumbs.db
.idea/
.vscode/
6 changes: 6 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
**/node_modules
**/dist
**/coverage
**/.next
**/.turbo
*.log
6 changes: 6 additions & 0 deletions .prettierrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"semi": true,
"singleQuote": true,
"trailingComma": "all",
"printWidth": 100
}
Loading