From 55104be77e2e9a2424640425c439d2f7e6818bba Mon Sep 17 00:00:00 2001 From: malavya1411 Date: Mon, 13 Jul 2026 20:26:52 +0530 Subject: [PATCH 1/2] refactor(repo): reorganize repository architecture and clean root directory --- .github/ISSUE_TEMPLATE/bug_report.md | 31 ++++++++++++++ .github/ISSUE_TEMPLATE/feature_request.md | 19 +++++++++ .github/PULL_REQUEST_TEMPLATE.md | 23 ++++++++++ .../github => .github}/workflows/ci.yml | 24 +++++------ CODE_OF_CONDUCT.md | 40 ++++++++++++++++++ LICENSE | 21 +++++++++ README.md | 40 ++++++++---------- SECURITY.md | 13 ++++++ {frontend => client}/.dockerignore | 0 {frontend => client}/.env.example | 0 {frontend => client}/.eslintignore | 0 {frontend => client}/.eslintrc.cjs | 0 {frontend => client}/.gitignore | 0 {frontend => client}/.oxlintrc.json | 0 {frontend => client}/.prettierignore | 0 {backend => client}/.prettierrc | 0 {frontend => client}/Dockerfile | 0 {frontend => client}/README.md | 0 {frontend => client}/cypress.config.cjs | 0 {frontend => client}/cypress/e2e/login.cy.js | 0 {frontend => client}/index.html | 0 {frontend => client}/lighthouse-report.json | 0 {frontend => client}/nginx.conf | 0 {frontend => client}/package.json | 0 {frontend => client}/postcss.config.js | 0 {assets => client/public/assets}/.gitkeep | 0 {frontend => client}/public/favicon.svg | 0 {frontend => client}/public/icons.svg | 0 {frontend => client}/src/App.css | 0 {frontend => client}/src/App.tsx | 0 {frontend => client}/src/assets/hero.png | Bin {frontend => client}/src/assets/react.svg | 0 {frontend => client}/src/assets/vite.svg | 0 .../src/components/AuthLayout.tsx | 0 .../src/components/Avatar.tsx | 0 .../src/components/Button.tsx | 0 .../src/components/ComposeModal.tsx | 0 .../src/components/DeadlinesWidget.tsx | 0 .../src/components/EmailList.tsx | 0 .../src/components/EmailRow.tsx | 0 .../src/components/EmailSkeleton.tsx | 0 .../src/components/EmailViewer.tsx | 0 .../src/components/EmptyState.tsx | 0 .../src/components/FloatingActionButton.tsx | 0 .../src/components/LandingPage.tsx | 0 .../src/components/Layout.tsx | 0 .../src/components/LoginForm.tsx | 0 {frontend => client}/src/components/Modal.tsx | 0 .../src/components/ProtectedRoute.tsx | 0 .../src/components/RegisterForm.tsx | 0 .../src/components/SidebarNav.tsx | 0 {frontend => client}/src/config.ts | 0 .../src/context/AuthContext.tsx | 0 .../src/context/ComposeContext.tsx | 0 .../src/context/SocketContext.tsx | 0 {frontend => client}/src/firebase.ts | 0 {frontend => client}/src/index.css | 0 {frontend => client}/src/main.tsx | 0 .../src/pages/AnalyticsPage.tsx | 0 {frontend => client}/tailwind.config.js | 0 {frontend => client}/tsconfig.app.json | 0 {frontend => client}/tsconfig.json | 0 {frontend => client}/tsconfig.node.json | 0 {frontend => client}/vite.config.ts | 0 .../docker-compose.yml => docker-compose.yml | 10 ++--- docs/contributing/CONTRIBUTING.md | 4 +- package.json | 4 +- .../config/env/.env.example | 0 .../config/git/gitignore | 0 {infrastructure => scripts}/postgres/init.sql | 0 .../prompts/classification.json | 0 {development => scripts}/scratch/get_logs.py | 0 .../scratch/print_diagnose_logs.py | 0 .../scratch/print_step358.py | 0 .../scratch/search_transcript.py | 0 .../scripts/analyze_logs.py | 0 .../scripts/api_latency.jsonl | 0 .../scripts/generate_eval_dataset.py | 0 .../scripts/generate_mock_data.py | 0 .../scripts/mock_emails.json | 0 .../scripts/project_x_eval_dataset.csv | 0 .../terraform/.gitignore | 0 .../terraform/elasticache.tf | 0 {infrastructure => scripts}/terraform/main.tf | 0 .../terraform/outputs.tf | 0 {infrastructure => scripts}/terraform/rds.tf | 0 .../terraform/security_groups.tf | 0 .../terraform/terraform.tfvars | 0 {infrastructure => scripts}/terraform/tfplan | Bin .../terraform/variables.tf | 0 {infrastructure => scripts}/terraform/vpc.tf | 0 {backend => server}/.env.example | 0 {backend => server}/.eslintignore | 0 {backend => server}/.eslintrc.js | 0 {backend => server}/.prettierignore | 0 {frontend => server}/.prettierrc | 0 {backend => server}/Dockerfile | 0 .../apps/api/inboxos.db-journal | Bin {backend => server}/jest.config.js | 0 {backend => server}/package.json | 0 {backend => server}/parse_eml.js | 0 .../migration.sql | 0 .../migration.sql | 0 .../prisma/migrations/migration_lock.toml | 0 {backend => server}/prisma/schema.prisma | 0 {backend => server}/prisma/seed.ts | 0 {backend => server}/render.yaml | 0 {backend => server}/sample.eml | 0 {backend => server}/sample_no_attachments.eml | 0 .../src/__mocks__/firebase-admin.ts | 0 .../src/__tests__/calendar-extractor.test.ts | 0 .../src/__tests__/calendar-routes.test.ts | 0 .../src/__tests__/digest.test.ts | 0 .../src/__tests__/expense.test.ts | 0 .../src/__tests__/feedback.test.ts | 0 .../src/__tests__/health.test.ts | 0 .../link-attachment-extractor.test.ts | 0 .../src/__tests__/password-strength.test.ts | 0 .../src/__tests__/profile.test.ts | 0 .../src/__tests__/reminder.test.ts | 0 .../src/__tests__/search.test.ts | 0 {backend => server}/src/check_emails.ts | 0 {backend => server}/src/config/swagger.ts | 0 .../src/config/telegram.config.ts | 0 {backend => server}/src/index.ts | 0 .../src/jobs/calendar-events.job.ts | 0 .../src/jobs/digest-scheduler.job.ts | 0 .../src/jobs/index-emails.job.ts | 0 {backend => server}/src/jobs/reminder.job.ts | 0 .../src/middleware/auth.middleware.ts | 0 .../src/middleware/rate-limiter.middleware.ts | 0 {backend => server}/src/reminder-worker.ts | 0 {backend => server}/src/routes/ai.routes.ts | 0 .../src/routes/calendar.routes.ts | 0 .../src/routes/digests.routes.ts | 0 .../src/routes/expenses.routes.ts | 0 .../src/routes/feedback.routes.ts | 0 .../src/routes/integrations.routes.ts | 0 .../src/routes/notifications.routes.ts | 0 {backend => server}/src/routes/rag.routes.ts | 0 .../src/routes/reminders.routes.ts | 0 .../src/routes/tasks.routes.ts | 0 {backend => server}/src/scratch-chrono.ts | 0 .../src/scripts/migrate-categories.ts | 0 {backend => server}/src/server.ts | 0 .../src/services/DiscordNotifier.ts | 0 .../src/services/KeywordFilter.ts | 0 .../src/services/SlackNotifier.ts | 0 .../actions/calendar-creator.service.ts | 0 .../actions/calendar-extractor.service.ts | 0 .../actions/digest-generator.service.ts | 0 .../actions/expense-extractor.service.ts | 0 .../actions/reminder-scheduler.service.ts | 0 .../services/ai-providers/ollama.provider.ts | 0 .../src/services/ai.service.ts | 0 .../services/ai/feedback-collector.service.ts | 0 .../src/services/auth.service.ts | 0 .../src/services/email-sender.service.ts | 0 .../src/services/event-bus.service.ts | 0 .../services/feedback-collector.service.ts | 0 .../src/services/gmail-sync.service.ts | 0 .../src/services/imap.service.ts | 0 .../src/services/outlook-sync.service.ts | 0 .../services/outputs/email-digest.adapter.ts | 0 .../link-attachment-extractor.service.ts | 0 .../src/services/redis.service.ts | 0 .../src/services/rules-engine.service.ts | 0 .../src/services/telegram-bot.service.ts | 0 .../services/telegram-notification.service.ts | 0 .../services/webhook-dispatcher.service.ts | 0 .../src/services/websocket.service.ts | 0 .../src/services/whatsapp.adapter.ts | 0 {backend => server}/src/test-action-items.ts | 0 {backend => server}/src/test-classifier.ts | 0 {backend => server}/src/test-discord.ts | 0 {backend => server}/src/test-embeddings.ts | 0 {backend => server}/src/test-gravatar.ts | 0 {backend => server}/src/test-slack.ts | 0 {backend => server}/src/test-summary.ts | 0 .../src/utils/bullmq-wrapper.ts | 0 {backend => server}/src/utils/crypto.ts | 0 {backend => server}/src/utils/gravatar.ts | 0 {backend => server}/src/utils/logger.ts | 0 {backend => server}/src/utils/metrics.ts | 0 .../src/utils/password-strength.ts | 0 {backend => server}/src/utils/redis-health.ts | 0 {backend => server}/src/utils/redis-patch.ts | 0 {backend => server}/src/worker.ts | 0 {backend => server}/test_oauth.js | 0 {backend => server}/tsconfig.json | 0 190 files changed, 185 insertions(+), 44 deletions(-) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md create mode 100644 .github/ISSUE_TEMPLATE/feature_request.md create mode 100644 .github/PULL_REQUEST_TEMPLATE.md rename {infrastructure/github => .github}/workflows/ci.yml (81%) create mode 100644 CODE_OF_CONDUCT.md create mode 100644 LICENSE create mode 100644 SECURITY.md rename {frontend => client}/.dockerignore (100%) rename {frontend => client}/.env.example (100%) rename {frontend => client}/.eslintignore (100%) rename {frontend => client}/.eslintrc.cjs (100%) rename {frontend => client}/.gitignore (100%) rename {frontend => client}/.oxlintrc.json (100%) rename {frontend => client}/.prettierignore (100%) rename {backend => client}/.prettierrc (100%) rename {frontend => client}/Dockerfile (100%) rename {frontend => client}/README.md (100%) rename {frontend => client}/cypress.config.cjs (100%) rename {frontend => client}/cypress/e2e/login.cy.js (100%) rename {frontend => client}/index.html (100%) rename {frontend => client}/lighthouse-report.json (100%) rename {frontend => client}/nginx.conf (100%) rename {frontend => client}/package.json (100%) rename {frontend => client}/postcss.config.js (100%) rename {assets => client/public/assets}/.gitkeep (100%) rename {frontend => client}/public/favicon.svg (100%) rename {frontend => client}/public/icons.svg (100%) rename {frontend => client}/src/App.css (100%) rename {frontend => client}/src/App.tsx (100%) rename {frontend => client}/src/assets/hero.png (100%) rename {frontend => client}/src/assets/react.svg (100%) rename {frontend => client}/src/assets/vite.svg (100%) rename {frontend => client}/src/components/AuthLayout.tsx (100%) rename {frontend => client}/src/components/Avatar.tsx (100%) rename {frontend => client}/src/components/Button.tsx (100%) rename {frontend => client}/src/components/ComposeModal.tsx (100%) rename {frontend => client}/src/components/DeadlinesWidget.tsx (100%) rename {frontend => client}/src/components/EmailList.tsx (100%) rename {frontend => client}/src/components/EmailRow.tsx (100%) rename {frontend => client}/src/components/EmailSkeleton.tsx (100%) rename {frontend => client}/src/components/EmailViewer.tsx (100%) rename {frontend => client}/src/components/EmptyState.tsx (100%) rename {frontend => client}/src/components/FloatingActionButton.tsx (100%) rename {frontend => client}/src/components/LandingPage.tsx (100%) rename {frontend => client}/src/components/Layout.tsx (100%) rename {frontend => client}/src/components/LoginForm.tsx (100%) rename {frontend => client}/src/components/Modal.tsx (100%) rename {frontend => client}/src/components/ProtectedRoute.tsx (100%) rename {frontend => client}/src/components/RegisterForm.tsx (100%) rename {frontend => client}/src/components/SidebarNav.tsx (100%) rename {frontend => client}/src/config.ts (100%) rename {frontend => client}/src/context/AuthContext.tsx (100%) rename {frontend => client}/src/context/ComposeContext.tsx (100%) rename {frontend => client}/src/context/SocketContext.tsx (100%) rename {frontend => client}/src/firebase.ts (100%) rename {frontend => client}/src/index.css (100%) rename {frontend => client}/src/main.tsx (100%) rename {frontend => client}/src/pages/AnalyticsPage.tsx (100%) rename {frontend => client}/tailwind.config.js (100%) rename {frontend => client}/tsconfig.app.json (100%) rename {frontend => client}/tsconfig.json (100%) rename {frontend => client}/tsconfig.node.json (100%) rename {frontend => client}/vite.config.ts (100%) rename infrastructure/docker/docker-compose.yml => docker-compose.yml (93%) rename {infrastructure => scripts}/config/env/.env.example (100%) rename {infrastructure => scripts}/config/git/gitignore (100%) rename {infrastructure => scripts}/postgres/init.sql (100%) rename {development => scripts}/prompts/classification.json (100%) rename {development => scripts}/scratch/get_logs.py (100%) rename {development => scripts}/scratch/print_diagnose_logs.py (100%) rename {development => scripts}/scratch/print_step358.py (100%) rename {development => scripts}/scratch/search_transcript.py (100%) rename {development => scripts}/scripts/analyze_logs.py (100%) rename {development => scripts}/scripts/api_latency.jsonl (100%) rename {development => scripts}/scripts/generate_eval_dataset.py (100%) rename {development => scripts}/scripts/generate_mock_data.py (100%) rename {development => scripts}/scripts/mock_emails.json (100%) rename {development => scripts}/scripts/project_x_eval_dataset.csv (100%) rename {infrastructure => scripts}/terraform/.gitignore (100%) rename {infrastructure => scripts}/terraform/elasticache.tf (100%) rename {infrastructure => scripts}/terraform/main.tf (100%) rename {infrastructure => scripts}/terraform/outputs.tf (100%) rename {infrastructure => scripts}/terraform/rds.tf (100%) rename {infrastructure => scripts}/terraform/security_groups.tf (100%) rename {infrastructure => scripts}/terraform/terraform.tfvars (100%) rename {infrastructure => scripts}/terraform/tfplan (100%) rename {infrastructure => scripts}/terraform/variables.tf (100%) rename {infrastructure => scripts}/terraform/vpc.tf (100%) rename {backend => server}/.env.example (100%) rename {backend => server}/.eslintignore (100%) rename {backend => server}/.eslintrc.js (100%) rename {backend => server}/.prettierignore (100%) rename {frontend => server}/.prettierrc (100%) rename {backend => server}/Dockerfile (100%) rename {backend => server}/apps/api/inboxos.db-journal (100%) rename {backend => server}/jest.config.js (100%) rename {backend => server}/package.json (100%) rename {backend => server}/parse_eml.js (100%) rename {backend => server}/prisma/migrations/20260703000000_init_postgres/migration.sql (100%) rename {backend => server}/prisma/migrations/20260704083018_add_calendar_event_and_integration/migration.sql (100%) rename {backend => server}/prisma/migrations/migration_lock.toml (100%) rename {backend => server}/prisma/schema.prisma (100%) rename {backend => server}/prisma/seed.ts (100%) rename {backend => server}/render.yaml (100%) rename {backend => server}/sample.eml (100%) rename {backend => server}/sample_no_attachments.eml (100%) rename {backend => server}/src/__mocks__/firebase-admin.ts (100%) rename {backend => server}/src/__tests__/calendar-extractor.test.ts (100%) rename {backend => server}/src/__tests__/calendar-routes.test.ts (100%) rename {backend => server}/src/__tests__/digest.test.ts (100%) rename {backend => server}/src/__tests__/expense.test.ts (100%) rename {backend => server}/src/__tests__/feedback.test.ts (100%) rename {backend => server}/src/__tests__/health.test.ts (100%) rename {backend => server}/src/__tests__/link-attachment-extractor.test.ts (100%) rename {backend => server}/src/__tests__/password-strength.test.ts (100%) rename {backend => server}/src/__tests__/profile.test.ts (100%) rename {backend => server}/src/__tests__/reminder.test.ts (100%) rename {backend => server}/src/__tests__/search.test.ts (100%) rename {backend => server}/src/check_emails.ts (100%) rename {backend => server}/src/config/swagger.ts (100%) rename {backend => server}/src/config/telegram.config.ts (100%) rename {backend => server}/src/index.ts (100%) rename {backend => server}/src/jobs/calendar-events.job.ts (100%) rename {backend => server}/src/jobs/digest-scheduler.job.ts (100%) rename {backend => server}/src/jobs/index-emails.job.ts (100%) rename {backend => server}/src/jobs/reminder.job.ts (100%) rename {backend => server}/src/middleware/auth.middleware.ts (100%) rename {backend => server}/src/middleware/rate-limiter.middleware.ts (100%) rename {backend => server}/src/reminder-worker.ts (100%) rename {backend => server}/src/routes/ai.routes.ts (100%) rename {backend => server}/src/routes/calendar.routes.ts (100%) rename {backend => server}/src/routes/digests.routes.ts (100%) rename {backend => server}/src/routes/expenses.routes.ts (100%) rename {backend => server}/src/routes/feedback.routes.ts (100%) rename {backend => server}/src/routes/integrations.routes.ts (100%) rename {backend => server}/src/routes/notifications.routes.ts (100%) rename {backend => server}/src/routes/rag.routes.ts (100%) rename {backend => server}/src/routes/reminders.routes.ts (100%) rename {backend => server}/src/routes/tasks.routes.ts (100%) rename {backend => server}/src/scratch-chrono.ts (100%) rename {backend => server}/src/scripts/migrate-categories.ts (100%) rename {backend => server}/src/server.ts (100%) rename {backend => server}/src/services/DiscordNotifier.ts (100%) rename {backend => server}/src/services/KeywordFilter.ts (100%) rename {backend => server}/src/services/SlackNotifier.ts (100%) rename {backend => server}/src/services/actions/calendar-creator.service.ts (100%) rename {backend => server}/src/services/actions/calendar-extractor.service.ts (100%) rename {backend => server}/src/services/actions/digest-generator.service.ts (100%) rename {backend => server}/src/services/actions/expense-extractor.service.ts (100%) rename {backend => server}/src/services/actions/reminder-scheduler.service.ts (100%) rename {backend => server}/src/services/ai-providers/ollama.provider.ts (100%) rename {backend => server}/src/services/ai.service.ts (100%) rename {backend => server}/src/services/ai/feedback-collector.service.ts (100%) rename {backend => server}/src/services/auth.service.ts (100%) rename {backend => server}/src/services/email-sender.service.ts (100%) rename {backend => server}/src/services/event-bus.service.ts (100%) rename {backend => server}/src/services/feedback-collector.service.ts (100%) rename {backend => server}/src/services/gmail-sync.service.ts (100%) rename {backend => server}/src/services/imap.service.ts (100%) rename {backend => server}/src/services/outlook-sync.service.ts (100%) rename {backend => server}/src/services/outputs/email-digest.adapter.ts (100%) rename {backend => server}/src/services/parser/link-attachment-extractor.service.ts (100%) rename {backend => server}/src/services/redis.service.ts (100%) rename {backend => server}/src/services/rules-engine.service.ts (100%) rename {backend => server}/src/services/telegram-bot.service.ts (100%) rename {backend => server}/src/services/telegram-notification.service.ts (100%) rename {backend => server}/src/services/webhook-dispatcher.service.ts (100%) rename {backend => server}/src/services/websocket.service.ts (100%) rename {backend => server}/src/services/whatsapp.adapter.ts (100%) rename {backend => server}/src/test-action-items.ts (100%) rename {backend => server}/src/test-classifier.ts (100%) rename {backend => server}/src/test-discord.ts (100%) rename {backend => server}/src/test-embeddings.ts (100%) rename {backend => server}/src/test-gravatar.ts (100%) rename {backend => server}/src/test-slack.ts (100%) rename {backend => server}/src/test-summary.ts (100%) rename {backend => server}/src/utils/bullmq-wrapper.ts (100%) rename {backend => server}/src/utils/crypto.ts (100%) rename {backend => server}/src/utils/gravatar.ts (100%) rename {backend => server}/src/utils/logger.ts (100%) rename {backend => server}/src/utils/metrics.ts (100%) rename {backend => server}/src/utils/password-strength.ts (100%) rename {backend => server}/src/utils/redis-health.ts (100%) rename {backend => server}/src/utils/redis-patch.ts (100%) rename {backend => server}/src/worker.ts (100%) rename {backend => server}/test_oauth.js (100%) rename {backend => server}/tsconfig.json (100%) diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..dfd295f --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,31 @@ +name: Bug Report +about: Create a report to help us improve InboxOS +title: '[BUG] ' +labels: bug +assignees: '' + +--- + +**Describe the bug** +A clear and concise description of what the bug is. + +**To Reproduce** +Steps to reproduce the behavior: +1. Go to '...' +2. Click on '....' +3. Scroll down to '....' +4. See error + +**Expected behavior** +A clear and concise description of what you expected to happen. + +**Screenshots** +If applicable, add screenshots to help explain your problem. + +**Desktop (please complete the following information):** + - OS: [e.g. iOS] + - Browser [e.g. chrome, safari] + - Version [e.g. 22] + +**Additional context** +Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000..98b5921 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,19 @@ +name: Feature Request +about: Suggest an idea for this project +title: '[FEATURE] ' +labels: enhancement +assignees: '' + +--- + +**Is your feature request related to a problem? Please describe.** +A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] + +**Describe the solution you'd like** +A clear and concise description of what you want to happen. + +**Describe alternatives you've considered** +A clear and concise description of any alternative solutions or features you've considered. + +**Additional context** +Add any other context or screenshots about the feature request here. diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..cc9656c --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,23 @@ +## Description +Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change. + +Fixes # (issue) + +## Type of change +Please delete options that are not relevant. +- [ ] Bug fix (non-breaking change which fixes an issue) +- [ ] New feature (non-breaking change which adds functionality) +- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected) +- [ ] This change requires a documentation update + +## How Has This Been Tested? +Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration. + +## Checklist: +- [ ] My code follows the style guidelines of this project +- [ ] I have performed a self-review of my own code +- [ ] I have commented my code, particularly in hard-to-understand areas +- [ ] I have made corresponding changes to the documentation +- [ ] My changes generate no new warnings +- [ ] I have added tests that prove my fix is effective or that my feature works +- [ ] New and existing unit tests pass locally with my changes diff --git a/infrastructure/github/workflows/ci.yml b/.github/workflows/ci.yml similarity index 81% rename from infrastructure/github/workflows/ci.yml rename to .github/workflows/ci.yml index fda24f1..5bbf3fc 100644 --- a/infrastructure/github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -40,33 +40,33 @@ jobs: # Backend Jobs # ========================================== - name: Install Backend Dependencies - working-directory: ./backend + working-directory: ./server run: npm ci - name: Audit Backend Dependencies - working-directory: ./backend + working-directory: ./server run: npm audit --audit-level=high - name: Generate Prisma Client - working-directory: ./backend + working-directory: ./server run: npx prisma generate - name: Setup Test Database Schema - working-directory: ./backend + working-directory: ./server run: npx prisma db push env: DATABASE_URL: postgresql://postgres:postgres@localhost:5432/inboxos_test - name: Run Backend Lint - working-directory: ./backend + working-directory: ./server run: npm run lint - name: Run Backend Typecheck - working-directory: ./backend + working-directory: ./server run: npm run typecheck - name: Run Backend Tests - working-directory: ./backend + working-directory: ./server run: npm run test env: DATABASE_URL: postgresql://postgres:postgres@localhost:5432/inboxos_test @@ -75,21 +75,21 @@ jobs: # Frontend Jobs # ========================================== - name: Install Frontend Dependencies - working-directory: ./frontend + working-directory: ./client run: npm ci - name: Audit Frontend Dependencies - working-directory: ./frontend + working-directory: ./client run: npm audit --audit-level=high - name: Run Frontend Lint - working-directory: ./frontend + working-directory: ./client run: npm run lint - name: Run Frontend Typecheck - working-directory: ./frontend + working-directory: ./client run: npm run typecheck - name: Run Frontend Tests - working-directory: ./frontend + working-directory: ./client run: npm run test diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..88c9a68 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,40 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +We as members, contributors, and leaders pledge to make participation in our +community a harassment-free experience for everyone, regardless of age, body +size, visible or invisible disability, ethnicity, sex characteristics, gender +identity and expression, level of experience, education, socio-economic status, +nationality, personal appearance, race, religion, or sexual identity +and orientation. + +We pledge to act and interact in ways that contribute to an open, welcoming, +diverse, inclusive, and healthy community. + +## Our Standards + +Examples of behavior that contributes to a positive environment for our +community include: + +* Demonstrating empathy and kindness toward other people +* Being respectful of differing opinions, viewpoints, and experiences +* Giving and gracefully accepting constructive feedback +* Accepting responsibility and apologizing to those affected by our mistakes, + and learning from the experience +* Focusing on what is best not just for us as individuals, but for the + overall community + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported to the community leaders responsible for enforcement. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], +version 2.1, available at +[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. + +[homepage]: https://www.contributor-covenant.org +[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..3a92c0b --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 InboxOS Contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md index 5f6ee06..5d07b77 100644 --- a/README.md +++ b/README.md @@ -351,27 +351,21 @@ This monorepo isolates individual layers and clients under clean folders. All sy ```text InboxOS/ -├── assets/ # Logos, screenshots, and branding assets -├── backend/ # Node.js backend server (Express + Prisma) -├── frontend/ # React frontend client (Vite) +├── .github/ # Community files, PR templates, GitHub Actions +├── client/ # React frontend client (Vite) +├── server/ # Node.js backend server (Express + Prisma) ├── packages/ # Decoupled libraries and shared modules +├── scripts/ # Build, setup, and deployment scripts ├── docs/ # Developer manuals & architecture logs │ ├── api/ # API specifications and Postman config │ ├── architecture/ # Architecture design records and schema docs │ ├── contributing/ # Contribution guidelines │ ├── setup/ # Setup instructions │ └── workflows/ # Workflow definitions -├── development/ # Developer-only workspace -│ ├── prompts/ # AI prompt definitions -│ ├── scratch/ # Local scratch scripts and dumps -│ └── scripts/ # Development utility scripts -├── infrastructure/ # Configurations for running the application -│ ├── docker/ # Docker Compose configurations -│ ├── terraform/ # Terraform scripts for cloud provisioning -│ ├── postgres/ # PostgreSQL initialization scripts -│ ├── config/ # Env and gitignore template configurations -│ └── github/ # GitHub actions configurations ├── .gitignore # Git tracking rules +├── .firebaserc # Firebase CLI target configs (required for deployment) +├── firebase.json # Firebase rules and routing (required for deployment) +├── docker-compose.yml # Local full-stack orchestration ├── package.json # Root package workspace definition └── README.md # Repository Hero and Reference manual (this file) ``` @@ -398,14 +392,14 @@ git clone https://github.com/inboxos/inboxos.git cd inboxos # 2. Copy and configure variables -cp infrastructure/config/env/.env.example infrastructure/config/env/.env -# Edit infrastructure/config/env/.env with your secrets +cp scripts/config/env/.env.example scripts/config/env/.env +# Edit scripts/config/env/.env with your secrets -# 3. Spin up all services (PostgreSQL, Redis, Backend, Frontend) -docker compose -f infrastructure/docker/docker-compose.yml up -d +# 3. Spin up all services (PostgreSQL, Redis, Server, Client) +docker compose up -d # 4. Execute database migrations -docker compose -f infrastructure/docker/docker-compose.yml exec backend npx prisma db push +docker compose exec server npx prisma db push # 5. Open the Dashboard UI # Access the dashboard at http://localhost @@ -419,15 +413,15 @@ For active local debugging of individual services without Docker containerizatio #### 1. Backend API Server ```bash -cd backend +cd server npm install -# Configure backend/.env or use infrastructure/config/env/.env +# Configure server/.env or use scripts/config/env/.env npm start ``` #### 2. Frontend Dashboard UI (new terminal) ```bash -cd frontend +cd client npm install npm run dev ``` @@ -481,12 +475,12 @@ Create your configuration files inside `infrastructure/config/env/`. ### Backend Deploy (DigitalOcean App Platform / Render) 1. Provision a managed **PostgreSQL 15** and **Redis** instance. -2. Build the Dockerfile context from `backend/` folder. +2. Build the Dockerfile context from `server/` folder. 3. Bind the environment variables to point to production endpoints (ensure `NODE_ENV=production` is set). 4. Run `npx prisma db push` or `npx prisma migrate deploy` to deploy the database schema. ### Frontend Deploy (Vercel) -1. Connect the repository and configure target build directory to `frontend`. +1. Connect the repository and configure target build directory to `client`. 2. Configure build framework presets to **Vite**. 3. Supply `VITE_API_BASE_URL` env parameter pointing to the live API backend server. diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000..44260f4 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,13 @@ +# Security Policy + +## Supported Versions + +Currently, only the `main` branch (latest release) is supported with security updates. + +## Reporting a Vulnerability + +Please do not report security vulnerabilities through public GitHub issues. + +Instead, please report them directly to the maintainers by emailing `security@inboxos.com` (or the respective maintainer email). + +You should receive a response within 48 hours. If the issue is confirmed as a vulnerability, we will open a private Security Advisory on GitHub and work on a patch. diff --git a/frontend/.dockerignore b/client/.dockerignore similarity index 100% rename from frontend/.dockerignore rename to client/.dockerignore diff --git a/frontend/.env.example b/client/.env.example similarity index 100% rename from frontend/.env.example rename to client/.env.example diff --git a/frontend/.eslintignore b/client/.eslintignore similarity index 100% rename from frontend/.eslintignore rename to client/.eslintignore diff --git a/frontend/.eslintrc.cjs b/client/.eslintrc.cjs similarity index 100% rename from frontend/.eslintrc.cjs rename to client/.eslintrc.cjs diff --git a/frontend/.gitignore b/client/.gitignore similarity index 100% rename from frontend/.gitignore rename to client/.gitignore diff --git a/frontend/.oxlintrc.json b/client/.oxlintrc.json similarity index 100% rename from frontend/.oxlintrc.json rename to client/.oxlintrc.json diff --git a/frontend/.prettierignore b/client/.prettierignore similarity index 100% rename from frontend/.prettierignore rename to client/.prettierignore diff --git a/backend/.prettierrc b/client/.prettierrc similarity index 100% rename from backend/.prettierrc rename to client/.prettierrc diff --git a/frontend/Dockerfile b/client/Dockerfile similarity index 100% rename from frontend/Dockerfile rename to client/Dockerfile diff --git a/frontend/README.md b/client/README.md similarity index 100% rename from frontend/README.md rename to client/README.md diff --git a/frontend/cypress.config.cjs b/client/cypress.config.cjs similarity index 100% rename from frontend/cypress.config.cjs rename to client/cypress.config.cjs diff --git a/frontend/cypress/e2e/login.cy.js b/client/cypress/e2e/login.cy.js similarity index 100% rename from frontend/cypress/e2e/login.cy.js rename to client/cypress/e2e/login.cy.js diff --git a/frontend/index.html b/client/index.html similarity index 100% rename from frontend/index.html rename to client/index.html diff --git a/frontend/lighthouse-report.json b/client/lighthouse-report.json similarity index 100% rename from frontend/lighthouse-report.json rename to client/lighthouse-report.json diff --git a/frontend/nginx.conf b/client/nginx.conf similarity index 100% rename from frontend/nginx.conf rename to client/nginx.conf diff --git a/frontend/package.json b/client/package.json similarity index 100% rename from frontend/package.json rename to client/package.json diff --git a/frontend/postcss.config.js b/client/postcss.config.js similarity index 100% rename from frontend/postcss.config.js rename to client/postcss.config.js diff --git a/assets/.gitkeep b/client/public/assets/.gitkeep similarity index 100% rename from assets/.gitkeep rename to client/public/assets/.gitkeep diff --git a/frontend/public/favicon.svg b/client/public/favicon.svg similarity index 100% rename from frontend/public/favicon.svg rename to client/public/favicon.svg diff --git a/frontend/public/icons.svg b/client/public/icons.svg similarity index 100% rename from frontend/public/icons.svg rename to client/public/icons.svg diff --git a/frontend/src/App.css b/client/src/App.css similarity index 100% rename from frontend/src/App.css rename to client/src/App.css diff --git a/frontend/src/App.tsx b/client/src/App.tsx similarity index 100% rename from frontend/src/App.tsx rename to client/src/App.tsx diff --git a/frontend/src/assets/hero.png b/client/src/assets/hero.png similarity index 100% rename from frontend/src/assets/hero.png rename to client/src/assets/hero.png diff --git a/frontend/src/assets/react.svg b/client/src/assets/react.svg similarity index 100% rename from frontend/src/assets/react.svg rename to client/src/assets/react.svg diff --git a/frontend/src/assets/vite.svg b/client/src/assets/vite.svg similarity index 100% rename from frontend/src/assets/vite.svg rename to client/src/assets/vite.svg diff --git a/frontend/src/components/AuthLayout.tsx b/client/src/components/AuthLayout.tsx similarity index 100% rename from frontend/src/components/AuthLayout.tsx rename to client/src/components/AuthLayout.tsx diff --git a/frontend/src/components/Avatar.tsx b/client/src/components/Avatar.tsx similarity index 100% rename from frontend/src/components/Avatar.tsx rename to client/src/components/Avatar.tsx diff --git a/frontend/src/components/Button.tsx b/client/src/components/Button.tsx similarity index 100% rename from frontend/src/components/Button.tsx rename to client/src/components/Button.tsx diff --git a/frontend/src/components/ComposeModal.tsx b/client/src/components/ComposeModal.tsx similarity index 100% rename from frontend/src/components/ComposeModal.tsx rename to client/src/components/ComposeModal.tsx diff --git a/frontend/src/components/DeadlinesWidget.tsx b/client/src/components/DeadlinesWidget.tsx similarity index 100% rename from frontend/src/components/DeadlinesWidget.tsx rename to client/src/components/DeadlinesWidget.tsx diff --git a/frontend/src/components/EmailList.tsx b/client/src/components/EmailList.tsx similarity index 100% rename from frontend/src/components/EmailList.tsx rename to client/src/components/EmailList.tsx diff --git a/frontend/src/components/EmailRow.tsx b/client/src/components/EmailRow.tsx similarity index 100% rename from frontend/src/components/EmailRow.tsx rename to client/src/components/EmailRow.tsx diff --git a/frontend/src/components/EmailSkeleton.tsx b/client/src/components/EmailSkeleton.tsx similarity index 100% rename from frontend/src/components/EmailSkeleton.tsx rename to client/src/components/EmailSkeleton.tsx diff --git a/frontend/src/components/EmailViewer.tsx b/client/src/components/EmailViewer.tsx similarity index 100% rename from frontend/src/components/EmailViewer.tsx rename to client/src/components/EmailViewer.tsx diff --git a/frontend/src/components/EmptyState.tsx b/client/src/components/EmptyState.tsx similarity index 100% rename from frontend/src/components/EmptyState.tsx rename to client/src/components/EmptyState.tsx diff --git a/frontend/src/components/FloatingActionButton.tsx b/client/src/components/FloatingActionButton.tsx similarity index 100% rename from frontend/src/components/FloatingActionButton.tsx rename to client/src/components/FloatingActionButton.tsx diff --git a/frontend/src/components/LandingPage.tsx b/client/src/components/LandingPage.tsx similarity index 100% rename from frontend/src/components/LandingPage.tsx rename to client/src/components/LandingPage.tsx diff --git a/frontend/src/components/Layout.tsx b/client/src/components/Layout.tsx similarity index 100% rename from frontend/src/components/Layout.tsx rename to client/src/components/Layout.tsx diff --git a/frontend/src/components/LoginForm.tsx b/client/src/components/LoginForm.tsx similarity index 100% rename from frontend/src/components/LoginForm.tsx rename to client/src/components/LoginForm.tsx diff --git a/frontend/src/components/Modal.tsx b/client/src/components/Modal.tsx similarity index 100% rename from frontend/src/components/Modal.tsx rename to client/src/components/Modal.tsx diff --git a/frontend/src/components/ProtectedRoute.tsx b/client/src/components/ProtectedRoute.tsx similarity index 100% rename from frontend/src/components/ProtectedRoute.tsx rename to client/src/components/ProtectedRoute.tsx diff --git a/frontend/src/components/RegisterForm.tsx b/client/src/components/RegisterForm.tsx similarity index 100% rename from frontend/src/components/RegisterForm.tsx rename to client/src/components/RegisterForm.tsx diff --git a/frontend/src/components/SidebarNav.tsx b/client/src/components/SidebarNav.tsx similarity index 100% rename from frontend/src/components/SidebarNav.tsx rename to client/src/components/SidebarNav.tsx diff --git a/frontend/src/config.ts b/client/src/config.ts similarity index 100% rename from frontend/src/config.ts rename to client/src/config.ts diff --git a/frontend/src/context/AuthContext.tsx b/client/src/context/AuthContext.tsx similarity index 100% rename from frontend/src/context/AuthContext.tsx rename to client/src/context/AuthContext.tsx diff --git a/frontend/src/context/ComposeContext.tsx b/client/src/context/ComposeContext.tsx similarity index 100% rename from frontend/src/context/ComposeContext.tsx rename to client/src/context/ComposeContext.tsx diff --git a/frontend/src/context/SocketContext.tsx b/client/src/context/SocketContext.tsx similarity index 100% rename from frontend/src/context/SocketContext.tsx rename to client/src/context/SocketContext.tsx diff --git a/frontend/src/firebase.ts b/client/src/firebase.ts similarity index 100% rename from frontend/src/firebase.ts rename to client/src/firebase.ts diff --git a/frontend/src/index.css b/client/src/index.css similarity index 100% rename from frontend/src/index.css rename to client/src/index.css diff --git a/frontend/src/main.tsx b/client/src/main.tsx similarity index 100% rename from frontend/src/main.tsx rename to client/src/main.tsx diff --git a/frontend/src/pages/AnalyticsPage.tsx b/client/src/pages/AnalyticsPage.tsx similarity index 100% rename from frontend/src/pages/AnalyticsPage.tsx rename to client/src/pages/AnalyticsPage.tsx diff --git a/frontend/tailwind.config.js b/client/tailwind.config.js similarity index 100% rename from frontend/tailwind.config.js rename to client/tailwind.config.js diff --git a/frontend/tsconfig.app.json b/client/tsconfig.app.json similarity index 100% rename from frontend/tsconfig.app.json rename to client/tsconfig.app.json diff --git a/frontend/tsconfig.json b/client/tsconfig.json similarity index 100% rename from frontend/tsconfig.json rename to client/tsconfig.json diff --git a/frontend/tsconfig.node.json b/client/tsconfig.node.json similarity index 100% rename from frontend/tsconfig.node.json rename to client/tsconfig.node.json diff --git a/frontend/vite.config.ts b/client/vite.config.ts similarity index 100% rename from frontend/vite.config.ts rename to client/vite.config.ts diff --git a/infrastructure/docker/docker-compose.yml b/docker-compose.yml similarity index 93% rename from infrastructure/docker/docker-compose.yml rename to docker-compose.yml index 051d167..b2bf5ef 100644 --- a/infrastructure/docker/docker-compose.yml +++ b/docker-compose.yml @@ -13,7 +13,7 @@ services: - "5432:5432" volumes: - postgres_data:/var/lib/postgresql/data - - ../postgres/init.sql:/docker-entrypoint-initdb.d/init.sql + - ./scripts/postgres/init.sql:/docker-entrypoint-initdb.d/init.sql healthcheck: test: [ "CMD-SHELL", "pg_isready -U postgres -d inboxos" ] interval: 5s @@ -41,7 +41,7 @@ services: # ========================================== backend: build: - context: ../../backend + context: ./server dockerfile: Dockerfile target: dev restart: unless-stopped @@ -62,7 +62,7 @@ services: - GEMINI_API_KEY=${GEMINI_API_KEY:-} - AI_PROVIDER=${AI_PROVIDER:-openai} volumes: - - ../../backend:/usr/src/app + - ./server:/usr/src/app # Anonymous volume to preserve node_modules installed inside the container - /usr/src/app/node_modules depends_on: @@ -78,7 +78,7 @@ services: # ========================================== frontend: build: - context: ../../frontend + context: ./client dockerfile: Dockerfile target: dev restart: unless-stopped @@ -87,7 +87,7 @@ services: environment: - VITE_API_BASE_URL=http://localhost:8000 volumes: - - ../../frontend:/app + - ./client:/app # Anonymous volume to preserve node_modules installed inside the container - /app/node_modules depends_on: diff --git a/docs/contributing/CONTRIBUTING.md b/docs/contributing/CONTRIBUTING.md index dd0df16..64605f8 100644 --- a/docs/contributing/CONTRIBUTING.md +++ b/docs/contributing/CONTRIBUTING.md @@ -99,10 +99,10 @@ When you're ready, submit a Pull Request to merge your branch back into our `mai ``` 2. **Run Linting & Tests:** Ensure all tests pass and there are no compilation errors: ```bash - # In the backend directory + # In the server directory npm run typecheck - # In the frontend directory + # In the client directory npm run typecheck ``` 3. **Format Code:** Keep code styling consistent. diff --git a/package.json b/package.json index db37987..334fd5f 100644 --- a/package.json +++ b/package.json @@ -3,8 +3,8 @@ "version": "1.0.0", "private": true, "workspaces": [ - "backend", - "frontend", + "server", + "client", "packages/*" ], "dependencies": { diff --git a/infrastructure/config/env/.env.example b/scripts/config/env/.env.example similarity index 100% rename from infrastructure/config/env/.env.example rename to scripts/config/env/.env.example diff --git a/infrastructure/config/git/gitignore b/scripts/config/git/gitignore similarity index 100% rename from infrastructure/config/git/gitignore rename to scripts/config/git/gitignore diff --git a/infrastructure/postgres/init.sql b/scripts/postgres/init.sql similarity index 100% rename from infrastructure/postgres/init.sql rename to scripts/postgres/init.sql diff --git a/development/prompts/classification.json b/scripts/prompts/classification.json similarity index 100% rename from development/prompts/classification.json rename to scripts/prompts/classification.json diff --git a/development/scratch/get_logs.py b/scripts/scratch/get_logs.py similarity index 100% rename from development/scratch/get_logs.py rename to scripts/scratch/get_logs.py diff --git a/development/scratch/print_diagnose_logs.py b/scripts/scratch/print_diagnose_logs.py similarity index 100% rename from development/scratch/print_diagnose_logs.py rename to scripts/scratch/print_diagnose_logs.py diff --git a/development/scratch/print_step358.py b/scripts/scratch/print_step358.py similarity index 100% rename from development/scratch/print_step358.py rename to scripts/scratch/print_step358.py diff --git a/development/scratch/search_transcript.py b/scripts/scratch/search_transcript.py similarity index 100% rename from development/scratch/search_transcript.py rename to scripts/scratch/search_transcript.py diff --git a/development/scripts/analyze_logs.py b/scripts/scripts/analyze_logs.py similarity index 100% rename from development/scripts/analyze_logs.py rename to scripts/scripts/analyze_logs.py diff --git a/development/scripts/api_latency.jsonl b/scripts/scripts/api_latency.jsonl similarity index 100% rename from development/scripts/api_latency.jsonl rename to scripts/scripts/api_latency.jsonl diff --git a/development/scripts/generate_eval_dataset.py b/scripts/scripts/generate_eval_dataset.py similarity index 100% rename from development/scripts/generate_eval_dataset.py rename to scripts/scripts/generate_eval_dataset.py diff --git a/development/scripts/generate_mock_data.py b/scripts/scripts/generate_mock_data.py similarity index 100% rename from development/scripts/generate_mock_data.py rename to scripts/scripts/generate_mock_data.py diff --git a/development/scripts/mock_emails.json b/scripts/scripts/mock_emails.json similarity index 100% rename from development/scripts/mock_emails.json rename to scripts/scripts/mock_emails.json diff --git a/development/scripts/project_x_eval_dataset.csv b/scripts/scripts/project_x_eval_dataset.csv similarity index 100% rename from development/scripts/project_x_eval_dataset.csv rename to scripts/scripts/project_x_eval_dataset.csv diff --git a/infrastructure/terraform/.gitignore b/scripts/terraform/.gitignore similarity index 100% rename from infrastructure/terraform/.gitignore rename to scripts/terraform/.gitignore diff --git a/infrastructure/terraform/elasticache.tf b/scripts/terraform/elasticache.tf similarity index 100% rename from infrastructure/terraform/elasticache.tf rename to scripts/terraform/elasticache.tf diff --git a/infrastructure/terraform/main.tf b/scripts/terraform/main.tf similarity index 100% rename from infrastructure/terraform/main.tf rename to scripts/terraform/main.tf diff --git a/infrastructure/terraform/outputs.tf b/scripts/terraform/outputs.tf similarity index 100% rename from infrastructure/terraform/outputs.tf rename to scripts/terraform/outputs.tf diff --git a/infrastructure/terraform/rds.tf b/scripts/terraform/rds.tf similarity index 100% rename from infrastructure/terraform/rds.tf rename to scripts/terraform/rds.tf diff --git a/infrastructure/terraform/security_groups.tf b/scripts/terraform/security_groups.tf similarity index 100% rename from infrastructure/terraform/security_groups.tf rename to scripts/terraform/security_groups.tf diff --git a/infrastructure/terraform/terraform.tfvars b/scripts/terraform/terraform.tfvars similarity index 100% rename from infrastructure/terraform/terraform.tfvars rename to scripts/terraform/terraform.tfvars diff --git a/infrastructure/terraform/tfplan b/scripts/terraform/tfplan similarity index 100% rename from infrastructure/terraform/tfplan rename to scripts/terraform/tfplan diff --git a/infrastructure/terraform/variables.tf b/scripts/terraform/variables.tf similarity index 100% rename from infrastructure/terraform/variables.tf rename to scripts/terraform/variables.tf diff --git a/infrastructure/terraform/vpc.tf b/scripts/terraform/vpc.tf similarity index 100% rename from infrastructure/terraform/vpc.tf rename to scripts/terraform/vpc.tf diff --git a/backend/.env.example b/server/.env.example similarity index 100% rename from backend/.env.example rename to server/.env.example diff --git a/backend/.eslintignore b/server/.eslintignore similarity index 100% rename from backend/.eslintignore rename to server/.eslintignore diff --git a/backend/.eslintrc.js b/server/.eslintrc.js similarity index 100% rename from backend/.eslintrc.js rename to server/.eslintrc.js diff --git a/backend/.prettierignore b/server/.prettierignore similarity index 100% rename from backend/.prettierignore rename to server/.prettierignore diff --git a/frontend/.prettierrc b/server/.prettierrc similarity index 100% rename from frontend/.prettierrc rename to server/.prettierrc diff --git a/backend/Dockerfile b/server/Dockerfile similarity index 100% rename from backend/Dockerfile rename to server/Dockerfile diff --git a/backend/apps/api/inboxos.db-journal b/server/apps/api/inboxos.db-journal similarity index 100% rename from backend/apps/api/inboxos.db-journal rename to server/apps/api/inboxos.db-journal diff --git a/backend/jest.config.js b/server/jest.config.js similarity index 100% rename from backend/jest.config.js rename to server/jest.config.js diff --git a/backend/package.json b/server/package.json similarity index 100% rename from backend/package.json rename to server/package.json diff --git a/backend/parse_eml.js b/server/parse_eml.js similarity index 100% rename from backend/parse_eml.js rename to server/parse_eml.js diff --git a/backend/prisma/migrations/20260703000000_init_postgres/migration.sql b/server/prisma/migrations/20260703000000_init_postgres/migration.sql similarity index 100% rename from backend/prisma/migrations/20260703000000_init_postgres/migration.sql rename to server/prisma/migrations/20260703000000_init_postgres/migration.sql diff --git a/backend/prisma/migrations/20260704083018_add_calendar_event_and_integration/migration.sql b/server/prisma/migrations/20260704083018_add_calendar_event_and_integration/migration.sql similarity index 100% rename from backend/prisma/migrations/20260704083018_add_calendar_event_and_integration/migration.sql rename to server/prisma/migrations/20260704083018_add_calendar_event_and_integration/migration.sql diff --git a/backend/prisma/migrations/migration_lock.toml b/server/prisma/migrations/migration_lock.toml similarity index 100% rename from backend/prisma/migrations/migration_lock.toml rename to server/prisma/migrations/migration_lock.toml diff --git a/backend/prisma/schema.prisma b/server/prisma/schema.prisma similarity index 100% rename from backend/prisma/schema.prisma rename to server/prisma/schema.prisma diff --git a/backend/prisma/seed.ts b/server/prisma/seed.ts similarity index 100% rename from backend/prisma/seed.ts rename to server/prisma/seed.ts diff --git a/backend/render.yaml b/server/render.yaml similarity index 100% rename from backend/render.yaml rename to server/render.yaml diff --git a/backend/sample.eml b/server/sample.eml similarity index 100% rename from backend/sample.eml rename to server/sample.eml diff --git a/backend/sample_no_attachments.eml b/server/sample_no_attachments.eml similarity index 100% rename from backend/sample_no_attachments.eml rename to server/sample_no_attachments.eml diff --git a/backend/src/__mocks__/firebase-admin.ts b/server/src/__mocks__/firebase-admin.ts similarity index 100% rename from backend/src/__mocks__/firebase-admin.ts rename to server/src/__mocks__/firebase-admin.ts diff --git a/backend/src/__tests__/calendar-extractor.test.ts b/server/src/__tests__/calendar-extractor.test.ts similarity index 100% rename from backend/src/__tests__/calendar-extractor.test.ts rename to server/src/__tests__/calendar-extractor.test.ts diff --git a/backend/src/__tests__/calendar-routes.test.ts b/server/src/__tests__/calendar-routes.test.ts similarity index 100% rename from backend/src/__tests__/calendar-routes.test.ts rename to server/src/__tests__/calendar-routes.test.ts diff --git a/backend/src/__tests__/digest.test.ts b/server/src/__tests__/digest.test.ts similarity index 100% rename from backend/src/__tests__/digest.test.ts rename to server/src/__tests__/digest.test.ts diff --git a/backend/src/__tests__/expense.test.ts b/server/src/__tests__/expense.test.ts similarity index 100% rename from backend/src/__tests__/expense.test.ts rename to server/src/__tests__/expense.test.ts diff --git a/backend/src/__tests__/feedback.test.ts b/server/src/__tests__/feedback.test.ts similarity index 100% rename from backend/src/__tests__/feedback.test.ts rename to server/src/__tests__/feedback.test.ts diff --git a/backend/src/__tests__/health.test.ts b/server/src/__tests__/health.test.ts similarity index 100% rename from backend/src/__tests__/health.test.ts rename to server/src/__tests__/health.test.ts diff --git a/backend/src/__tests__/link-attachment-extractor.test.ts b/server/src/__tests__/link-attachment-extractor.test.ts similarity index 100% rename from backend/src/__tests__/link-attachment-extractor.test.ts rename to server/src/__tests__/link-attachment-extractor.test.ts diff --git a/backend/src/__tests__/password-strength.test.ts b/server/src/__tests__/password-strength.test.ts similarity index 100% rename from backend/src/__tests__/password-strength.test.ts rename to server/src/__tests__/password-strength.test.ts diff --git a/backend/src/__tests__/profile.test.ts b/server/src/__tests__/profile.test.ts similarity index 100% rename from backend/src/__tests__/profile.test.ts rename to server/src/__tests__/profile.test.ts diff --git a/backend/src/__tests__/reminder.test.ts b/server/src/__tests__/reminder.test.ts similarity index 100% rename from backend/src/__tests__/reminder.test.ts rename to server/src/__tests__/reminder.test.ts diff --git a/backend/src/__tests__/search.test.ts b/server/src/__tests__/search.test.ts similarity index 100% rename from backend/src/__tests__/search.test.ts rename to server/src/__tests__/search.test.ts diff --git a/backend/src/check_emails.ts b/server/src/check_emails.ts similarity index 100% rename from backend/src/check_emails.ts rename to server/src/check_emails.ts diff --git a/backend/src/config/swagger.ts b/server/src/config/swagger.ts similarity index 100% rename from backend/src/config/swagger.ts rename to server/src/config/swagger.ts diff --git a/backend/src/config/telegram.config.ts b/server/src/config/telegram.config.ts similarity index 100% rename from backend/src/config/telegram.config.ts rename to server/src/config/telegram.config.ts diff --git a/backend/src/index.ts b/server/src/index.ts similarity index 100% rename from backend/src/index.ts rename to server/src/index.ts diff --git a/backend/src/jobs/calendar-events.job.ts b/server/src/jobs/calendar-events.job.ts similarity index 100% rename from backend/src/jobs/calendar-events.job.ts rename to server/src/jobs/calendar-events.job.ts diff --git a/backend/src/jobs/digest-scheduler.job.ts b/server/src/jobs/digest-scheduler.job.ts similarity index 100% rename from backend/src/jobs/digest-scheduler.job.ts rename to server/src/jobs/digest-scheduler.job.ts diff --git a/backend/src/jobs/index-emails.job.ts b/server/src/jobs/index-emails.job.ts similarity index 100% rename from backend/src/jobs/index-emails.job.ts rename to server/src/jobs/index-emails.job.ts diff --git a/backend/src/jobs/reminder.job.ts b/server/src/jobs/reminder.job.ts similarity index 100% rename from backend/src/jobs/reminder.job.ts rename to server/src/jobs/reminder.job.ts diff --git a/backend/src/middleware/auth.middleware.ts b/server/src/middleware/auth.middleware.ts similarity index 100% rename from backend/src/middleware/auth.middleware.ts rename to server/src/middleware/auth.middleware.ts diff --git a/backend/src/middleware/rate-limiter.middleware.ts b/server/src/middleware/rate-limiter.middleware.ts similarity index 100% rename from backend/src/middleware/rate-limiter.middleware.ts rename to server/src/middleware/rate-limiter.middleware.ts diff --git a/backend/src/reminder-worker.ts b/server/src/reminder-worker.ts similarity index 100% rename from backend/src/reminder-worker.ts rename to server/src/reminder-worker.ts diff --git a/backend/src/routes/ai.routes.ts b/server/src/routes/ai.routes.ts similarity index 100% rename from backend/src/routes/ai.routes.ts rename to server/src/routes/ai.routes.ts diff --git a/backend/src/routes/calendar.routes.ts b/server/src/routes/calendar.routes.ts similarity index 100% rename from backend/src/routes/calendar.routes.ts rename to server/src/routes/calendar.routes.ts diff --git a/backend/src/routes/digests.routes.ts b/server/src/routes/digests.routes.ts similarity index 100% rename from backend/src/routes/digests.routes.ts rename to server/src/routes/digests.routes.ts diff --git a/backend/src/routes/expenses.routes.ts b/server/src/routes/expenses.routes.ts similarity index 100% rename from backend/src/routes/expenses.routes.ts rename to server/src/routes/expenses.routes.ts diff --git a/backend/src/routes/feedback.routes.ts b/server/src/routes/feedback.routes.ts similarity index 100% rename from backend/src/routes/feedback.routes.ts rename to server/src/routes/feedback.routes.ts diff --git a/backend/src/routes/integrations.routes.ts b/server/src/routes/integrations.routes.ts similarity index 100% rename from backend/src/routes/integrations.routes.ts rename to server/src/routes/integrations.routes.ts diff --git a/backend/src/routes/notifications.routes.ts b/server/src/routes/notifications.routes.ts similarity index 100% rename from backend/src/routes/notifications.routes.ts rename to server/src/routes/notifications.routes.ts diff --git a/backend/src/routes/rag.routes.ts b/server/src/routes/rag.routes.ts similarity index 100% rename from backend/src/routes/rag.routes.ts rename to server/src/routes/rag.routes.ts diff --git a/backend/src/routes/reminders.routes.ts b/server/src/routes/reminders.routes.ts similarity index 100% rename from backend/src/routes/reminders.routes.ts rename to server/src/routes/reminders.routes.ts diff --git a/backend/src/routes/tasks.routes.ts b/server/src/routes/tasks.routes.ts similarity index 100% rename from backend/src/routes/tasks.routes.ts rename to server/src/routes/tasks.routes.ts diff --git a/backend/src/scratch-chrono.ts b/server/src/scratch-chrono.ts similarity index 100% rename from backend/src/scratch-chrono.ts rename to server/src/scratch-chrono.ts diff --git a/backend/src/scripts/migrate-categories.ts b/server/src/scripts/migrate-categories.ts similarity index 100% rename from backend/src/scripts/migrate-categories.ts rename to server/src/scripts/migrate-categories.ts diff --git a/backend/src/server.ts b/server/src/server.ts similarity index 100% rename from backend/src/server.ts rename to server/src/server.ts diff --git a/backend/src/services/DiscordNotifier.ts b/server/src/services/DiscordNotifier.ts similarity index 100% rename from backend/src/services/DiscordNotifier.ts rename to server/src/services/DiscordNotifier.ts diff --git a/backend/src/services/KeywordFilter.ts b/server/src/services/KeywordFilter.ts similarity index 100% rename from backend/src/services/KeywordFilter.ts rename to server/src/services/KeywordFilter.ts diff --git a/backend/src/services/SlackNotifier.ts b/server/src/services/SlackNotifier.ts similarity index 100% rename from backend/src/services/SlackNotifier.ts rename to server/src/services/SlackNotifier.ts diff --git a/backend/src/services/actions/calendar-creator.service.ts b/server/src/services/actions/calendar-creator.service.ts similarity index 100% rename from backend/src/services/actions/calendar-creator.service.ts rename to server/src/services/actions/calendar-creator.service.ts diff --git a/backend/src/services/actions/calendar-extractor.service.ts b/server/src/services/actions/calendar-extractor.service.ts similarity index 100% rename from backend/src/services/actions/calendar-extractor.service.ts rename to server/src/services/actions/calendar-extractor.service.ts diff --git a/backend/src/services/actions/digest-generator.service.ts b/server/src/services/actions/digest-generator.service.ts similarity index 100% rename from backend/src/services/actions/digest-generator.service.ts rename to server/src/services/actions/digest-generator.service.ts diff --git a/backend/src/services/actions/expense-extractor.service.ts b/server/src/services/actions/expense-extractor.service.ts similarity index 100% rename from backend/src/services/actions/expense-extractor.service.ts rename to server/src/services/actions/expense-extractor.service.ts diff --git a/backend/src/services/actions/reminder-scheduler.service.ts b/server/src/services/actions/reminder-scheduler.service.ts similarity index 100% rename from backend/src/services/actions/reminder-scheduler.service.ts rename to server/src/services/actions/reminder-scheduler.service.ts diff --git a/backend/src/services/ai-providers/ollama.provider.ts b/server/src/services/ai-providers/ollama.provider.ts similarity index 100% rename from backend/src/services/ai-providers/ollama.provider.ts rename to server/src/services/ai-providers/ollama.provider.ts diff --git a/backend/src/services/ai.service.ts b/server/src/services/ai.service.ts similarity index 100% rename from backend/src/services/ai.service.ts rename to server/src/services/ai.service.ts diff --git a/backend/src/services/ai/feedback-collector.service.ts b/server/src/services/ai/feedback-collector.service.ts similarity index 100% rename from backend/src/services/ai/feedback-collector.service.ts rename to server/src/services/ai/feedback-collector.service.ts diff --git a/backend/src/services/auth.service.ts b/server/src/services/auth.service.ts similarity index 100% rename from backend/src/services/auth.service.ts rename to server/src/services/auth.service.ts diff --git a/backend/src/services/email-sender.service.ts b/server/src/services/email-sender.service.ts similarity index 100% rename from backend/src/services/email-sender.service.ts rename to server/src/services/email-sender.service.ts diff --git a/backend/src/services/event-bus.service.ts b/server/src/services/event-bus.service.ts similarity index 100% rename from backend/src/services/event-bus.service.ts rename to server/src/services/event-bus.service.ts diff --git a/backend/src/services/feedback-collector.service.ts b/server/src/services/feedback-collector.service.ts similarity index 100% rename from backend/src/services/feedback-collector.service.ts rename to server/src/services/feedback-collector.service.ts diff --git a/backend/src/services/gmail-sync.service.ts b/server/src/services/gmail-sync.service.ts similarity index 100% rename from backend/src/services/gmail-sync.service.ts rename to server/src/services/gmail-sync.service.ts diff --git a/backend/src/services/imap.service.ts b/server/src/services/imap.service.ts similarity index 100% rename from backend/src/services/imap.service.ts rename to server/src/services/imap.service.ts diff --git a/backend/src/services/outlook-sync.service.ts b/server/src/services/outlook-sync.service.ts similarity index 100% rename from backend/src/services/outlook-sync.service.ts rename to server/src/services/outlook-sync.service.ts diff --git a/backend/src/services/outputs/email-digest.adapter.ts b/server/src/services/outputs/email-digest.adapter.ts similarity index 100% rename from backend/src/services/outputs/email-digest.adapter.ts rename to server/src/services/outputs/email-digest.adapter.ts diff --git a/backend/src/services/parser/link-attachment-extractor.service.ts b/server/src/services/parser/link-attachment-extractor.service.ts similarity index 100% rename from backend/src/services/parser/link-attachment-extractor.service.ts rename to server/src/services/parser/link-attachment-extractor.service.ts diff --git a/backend/src/services/redis.service.ts b/server/src/services/redis.service.ts similarity index 100% rename from backend/src/services/redis.service.ts rename to server/src/services/redis.service.ts diff --git a/backend/src/services/rules-engine.service.ts b/server/src/services/rules-engine.service.ts similarity index 100% rename from backend/src/services/rules-engine.service.ts rename to server/src/services/rules-engine.service.ts diff --git a/backend/src/services/telegram-bot.service.ts b/server/src/services/telegram-bot.service.ts similarity index 100% rename from backend/src/services/telegram-bot.service.ts rename to server/src/services/telegram-bot.service.ts diff --git a/backend/src/services/telegram-notification.service.ts b/server/src/services/telegram-notification.service.ts similarity index 100% rename from backend/src/services/telegram-notification.service.ts rename to server/src/services/telegram-notification.service.ts diff --git a/backend/src/services/webhook-dispatcher.service.ts b/server/src/services/webhook-dispatcher.service.ts similarity index 100% rename from backend/src/services/webhook-dispatcher.service.ts rename to server/src/services/webhook-dispatcher.service.ts diff --git a/backend/src/services/websocket.service.ts b/server/src/services/websocket.service.ts similarity index 100% rename from backend/src/services/websocket.service.ts rename to server/src/services/websocket.service.ts diff --git a/backend/src/services/whatsapp.adapter.ts b/server/src/services/whatsapp.adapter.ts similarity index 100% rename from backend/src/services/whatsapp.adapter.ts rename to server/src/services/whatsapp.adapter.ts diff --git a/backend/src/test-action-items.ts b/server/src/test-action-items.ts similarity index 100% rename from backend/src/test-action-items.ts rename to server/src/test-action-items.ts diff --git a/backend/src/test-classifier.ts b/server/src/test-classifier.ts similarity index 100% rename from backend/src/test-classifier.ts rename to server/src/test-classifier.ts diff --git a/backend/src/test-discord.ts b/server/src/test-discord.ts similarity index 100% rename from backend/src/test-discord.ts rename to server/src/test-discord.ts diff --git a/backend/src/test-embeddings.ts b/server/src/test-embeddings.ts similarity index 100% rename from backend/src/test-embeddings.ts rename to server/src/test-embeddings.ts diff --git a/backend/src/test-gravatar.ts b/server/src/test-gravatar.ts similarity index 100% rename from backend/src/test-gravatar.ts rename to server/src/test-gravatar.ts diff --git a/backend/src/test-slack.ts b/server/src/test-slack.ts similarity index 100% rename from backend/src/test-slack.ts rename to server/src/test-slack.ts diff --git a/backend/src/test-summary.ts b/server/src/test-summary.ts similarity index 100% rename from backend/src/test-summary.ts rename to server/src/test-summary.ts diff --git a/backend/src/utils/bullmq-wrapper.ts b/server/src/utils/bullmq-wrapper.ts similarity index 100% rename from backend/src/utils/bullmq-wrapper.ts rename to server/src/utils/bullmq-wrapper.ts diff --git a/backend/src/utils/crypto.ts b/server/src/utils/crypto.ts similarity index 100% rename from backend/src/utils/crypto.ts rename to server/src/utils/crypto.ts diff --git a/backend/src/utils/gravatar.ts b/server/src/utils/gravatar.ts similarity index 100% rename from backend/src/utils/gravatar.ts rename to server/src/utils/gravatar.ts diff --git a/backend/src/utils/logger.ts b/server/src/utils/logger.ts similarity index 100% rename from backend/src/utils/logger.ts rename to server/src/utils/logger.ts diff --git a/backend/src/utils/metrics.ts b/server/src/utils/metrics.ts similarity index 100% rename from backend/src/utils/metrics.ts rename to server/src/utils/metrics.ts diff --git a/backend/src/utils/password-strength.ts b/server/src/utils/password-strength.ts similarity index 100% rename from backend/src/utils/password-strength.ts rename to server/src/utils/password-strength.ts diff --git a/backend/src/utils/redis-health.ts b/server/src/utils/redis-health.ts similarity index 100% rename from backend/src/utils/redis-health.ts rename to server/src/utils/redis-health.ts diff --git a/backend/src/utils/redis-patch.ts b/server/src/utils/redis-patch.ts similarity index 100% rename from backend/src/utils/redis-patch.ts rename to server/src/utils/redis-patch.ts diff --git a/backend/src/worker.ts b/server/src/worker.ts similarity index 100% rename from backend/src/worker.ts rename to server/src/worker.ts diff --git a/backend/test_oauth.js b/server/test_oauth.js similarity index 100% rename from backend/test_oauth.js rename to server/test_oauth.js diff --git a/backend/tsconfig.json b/server/tsconfig.json similarity index 100% rename from backend/tsconfig.json rename to server/tsconfig.json From 8d244e519a5cfbaf51fdd6672d15cab061317701 Mon Sep 17 00:00:00 2001 From: malavya1411 Date: Mon, 13 Jul 2026 20:35:47 +0530 Subject: [PATCH 2/2] chore: revert client/server back to frontend/backend for deployment compatibility --- .github/workflows/ci.yml | 24 +++++++++--------- README.md | 18 ++++++------- {server => backend}/.env.example | 0 {server => backend}/.eslintignore | 0 {server => backend}/.eslintrc.js | 0 {server => backend}/.prettierignore | 0 {client => backend}/.prettierrc | 0 {server => backend}/Dockerfile | 0 .../apps/api/inboxos.db-journal | Bin {server => backend}/jest.config.js | 0 {server => backend}/package.json | 0 {server => backend}/parse_eml.js | 0 .../migration.sql | 0 .../migration.sql | 0 .../prisma/migrations/migration_lock.toml | 0 {server => backend}/prisma/schema.prisma | 0 {server => backend}/prisma/seed.ts | 0 {server => backend}/render.yaml | 0 {server => backend}/sample.eml | 0 {server => backend}/sample_no_attachments.eml | 0 .../src/__mocks__/firebase-admin.ts | 0 .../src/__tests__/calendar-extractor.test.ts | 0 .../src/__tests__/calendar-routes.test.ts | 0 .../src/__tests__/digest.test.ts | 0 .../src/__tests__/expense.test.ts | 0 .../src/__tests__/feedback.test.ts | 0 .../src/__tests__/health.test.ts | 0 .../link-attachment-extractor.test.ts | 0 .../src/__tests__/password-strength.test.ts | 0 .../src/__tests__/profile.test.ts | 0 .../src/__tests__/reminder.test.ts | 0 .../src/__tests__/search.test.ts | 0 {server => backend}/src/check_emails.ts | 0 {server => backend}/src/config/swagger.ts | 0 .../src/config/telegram.config.ts | 0 {server => backend}/src/index.ts | 0 .../src/jobs/calendar-events.job.ts | 0 .../src/jobs/digest-scheduler.job.ts | 0 .../src/jobs/index-emails.job.ts | 0 {server => backend}/src/jobs/reminder.job.ts | 0 .../src/middleware/auth.middleware.ts | 0 .../src/middleware/rate-limiter.middleware.ts | 0 {server => backend}/src/reminder-worker.ts | 0 {server => backend}/src/routes/ai.routes.ts | 0 .../src/routes/calendar.routes.ts | 0 .../src/routes/digests.routes.ts | 0 .../src/routes/expenses.routes.ts | 0 .../src/routes/feedback.routes.ts | 0 .../src/routes/integrations.routes.ts | 0 .../src/routes/notifications.routes.ts | 0 {server => backend}/src/routes/rag.routes.ts | 0 .../src/routes/reminders.routes.ts | 0 .../src/routes/tasks.routes.ts | 0 {server => backend}/src/scratch-chrono.ts | 0 .../src/scripts/migrate-categories.ts | 0 {server => backend}/src/server.ts | 0 .../src/services/DiscordNotifier.ts | 0 .../src/services/KeywordFilter.ts | 0 .../src/services/SlackNotifier.ts | 0 .../actions/calendar-creator.service.ts | 0 .../actions/calendar-extractor.service.ts | 0 .../actions/digest-generator.service.ts | 0 .../actions/expense-extractor.service.ts | 0 .../actions/reminder-scheduler.service.ts | 0 .../services/ai-providers/ollama.provider.ts | 0 .../src/services/ai.service.ts | 0 .../services/ai/feedback-collector.service.ts | 0 .../src/services/auth.service.ts | 0 .../src/services/email-sender.service.ts | 0 .../src/services/event-bus.service.ts | 0 .../services/feedback-collector.service.ts | 0 .../src/services/gmail-sync.service.ts | 0 .../src/services/imap.service.ts | 0 .../src/services/outlook-sync.service.ts | 0 .../services/outputs/email-digest.adapter.ts | 0 .../link-attachment-extractor.service.ts | 0 .../src/services/redis.service.ts | 0 .../src/services/rules-engine.service.ts | 0 .../src/services/telegram-bot.service.ts | 0 .../services/telegram-notification.service.ts | 0 .../services/webhook-dispatcher.service.ts | 0 .../src/services/websocket.service.ts | 0 .../src/services/whatsapp.adapter.ts | 0 {server => backend}/src/test-action-items.ts | 0 {server => backend}/src/test-classifier.ts | 0 {server => backend}/src/test-discord.ts | 0 {server => backend}/src/test-embeddings.ts | 0 {server => backend}/src/test-gravatar.ts | 0 {server => backend}/src/test-slack.ts | 0 {server => backend}/src/test-summary.ts | 0 .../src/utils/bullmq-wrapper.ts | 0 {server => backend}/src/utils/crypto.ts | 0 {server => backend}/src/utils/gravatar.ts | 0 {server => backend}/src/utils/logger.ts | 0 {server => backend}/src/utils/metrics.ts | 0 .../src/utils/password-strength.ts | 0 {server => backend}/src/utils/redis-health.ts | 0 {server => backend}/src/utils/redis-patch.ts | 0 {server => backend}/src/worker.ts | 0 {server => backend}/test_oauth.js | 0 {server => backend}/tsconfig.json | 0 docker-compose.yml | 8 +++--- docs/contributing/CONTRIBUTING.md | 4 +-- {client => frontend}/.dockerignore | 0 {client => frontend}/.env.example | 0 {client => frontend}/.eslintignore | 0 {client => frontend}/.eslintrc.cjs | 0 {client => frontend}/.gitignore | 0 {client => frontend}/.oxlintrc.json | 0 {client => frontend}/.prettierignore | 0 {server => frontend}/.prettierrc | 0 {client => frontend}/Dockerfile | 0 {client => frontend}/README.md | 0 {client => frontend}/cypress.config.cjs | 0 {client => frontend}/cypress/e2e/login.cy.js | 0 {client => frontend}/index.html | 0 {client => frontend}/lighthouse-report.json | 0 {client => frontend}/nginx.conf | 0 {client => frontend}/package.json | 0 {client => frontend}/postcss.config.js | 0 {client => frontend}/public/assets/.gitkeep | 0 {client => frontend}/public/favicon.svg | 0 {client => frontend}/public/icons.svg | 0 {client => frontend}/src/App.css | 0 {client => frontend}/src/App.tsx | 0 {client => frontend}/src/assets/hero.png | Bin {client => frontend}/src/assets/react.svg | 0 {client => frontend}/src/assets/vite.svg | 0 .../src/components/AuthLayout.tsx | 0 .../src/components/Avatar.tsx | 0 .../src/components/Button.tsx | 0 .../src/components/ComposeModal.tsx | 0 .../src/components/DeadlinesWidget.tsx | 0 .../src/components/EmailList.tsx | 0 .../src/components/EmailRow.tsx | 0 .../src/components/EmailSkeleton.tsx | 0 .../src/components/EmailViewer.tsx | 0 .../src/components/EmptyState.tsx | 0 .../src/components/FloatingActionButton.tsx | 0 .../src/components/LandingPage.tsx | 0 .../src/components/Layout.tsx | 0 .../src/components/LoginForm.tsx | 0 {client => frontend}/src/components/Modal.tsx | 0 .../src/components/ProtectedRoute.tsx | 0 .../src/components/RegisterForm.tsx | 0 .../src/components/SidebarNav.tsx | 0 {client => frontend}/src/config.ts | 0 .../src/context/AuthContext.tsx | 0 .../src/context/ComposeContext.tsx | 0 .../src/context/SocketContext.tsx | 0 {client => frontend}/src/firebase.ts | 0 {client => frontend}/src/index.css | 0 {client => frontend}/src/main.tsx | 0 .../src/pages/AnalyticsPage.tsx | 0 {client => frontend}/tailwind.config.js | 0 {client => frontend}/tsconfig.app.json | 0 {client => frontend}/tsconfig.json | 0 {client => frontend}/tsconfig.node.json | 0 {client => frontend}/vite.config.ts | 0 package.json | 4 +-- 160 files changed, 29 insertions(+), 29 deletions(-) rename {server => backend}/.env.example (100%) rename {server => backend}/.eslintignore (100%) rename {server => backend}/.eslintrc.js (100%) rename {server => backend}/.prettierignore (100%) rename {client => backend}/.prettierrc (100%) rename {server => backend}/Dockerfile (100%) rename {server => backend}/apps/api/inboxos.db-journal (100%) rename {server => backend}/jest.config.js (100%) rename {server => backend}/package.json (100%) rename {server => backend}/parse_eml.js (100%) rename {server => backend}/prisma/migrations/20260703000000_init_postgres/migration.sql (100%) rename {server => backend}/prisma/migrations/20260704083018_add_calendar_event_and_integration/migration.sql (100%) rename {server => backend}/prisma/migrations/migration_lock.toml (100%) rename {server => backend}/prisma/schema.prisma (100%) rename {server => backend}/prisma/seed.ts (100%) rename {server => backend}/render.yaml (100%) rename {server => backend}/sample.eml (100%) rename {server => backend}/sample_no_attachments.eml (100%) rename {server => backend}/src/__mocks__/firebase-admin.ts (100%) rename {server => backend}/src/__tests__/calendar-extractor.test.ts (100%) rename {server => backend}/src/__tests__/calendar-routes.test.ts (100%) rename {server => backend}/src/__tests__/digest.test.ts (100%) rename {server => backend}/src/__tests__/expense.test.ts (100%) rename {server => backend}/src/__tests__/feedback.test.ts (100%) rename {server => backend}/src/__tests__/health.test.ts (100%) rename {server => backend}/src/__tests__/link-attachment-extractor.test.ts (100%) rename {server => backend}/src/__tests__/password-strength.test.ts (100%) rename {server => backend}/src/__tests__/profile.test.ts (100%) rename {server => backend}/src/__tests__/reminder.test.ts (100%) rename {server => backend}/src/__tests__/search.test.ts (100%) rename {server => backend}/src/check_emails.ts (100%) rename {server => backend}/src/config/swagger.ts (100%) rename {server => backend}/src/config/telegram.config.ts (100%) rename {server => backend}/src/index.ts (100%) rename {server => backend}/src/jobs/calendar-events.job.ts (100%) rename {server => backend}/src/jobs/digest-scheduler.job.ts (100%) rename {server => backend}/src/jobs/index-emails.job.ts (100%) rename {server => backend}/src/jobs/reminder.job.ts (100%) rename {server => backend}/src/middleware/auth.middleware.ts (100%) rename {server => backend}/src/middleware/rate-limiter.middleware.ts (100%) rename {server => backend}/src/reminder-worker.ts (100%) rename {server => backend}/src/routes/ai.routes.ts (100%) rename {server => backend}/src/routes/calendar.routes.ts (100%) rename {server => backend}/src/routes/digests.routes.ts (100%) rename {server => backend}/src/routes/expenses.routes.ts (100%) rename {server => backend}/src/routes/feedback.routes.ts (100%) rename {server => backend}/src/routes/integrations.routes.ts (100%) rename {server => backend}/src/routes/notifications.routes.ts (100%) rename {server => backend}/src/routes/rag.routes.ts (100%) rename {server => backend}/src/routes/reminders.routes.ts (100%) rename {server => backend}/src/routes/tasks.routes.ts (100%) rename {server => backend}/src/scratch-chrono.ts (100%) rename {server => backend}/src/scripts/migrate-categories.ts (100%) rename {server => backend}/src/server.ts (100%) rename {server => backend}/src/services/DiscordNotifier.ts (100%) rename {server => backend}/src/services/KeywordFilter.ts (100%) rename {server => backend}/src/services/SlackNotifier.ts (100%) rename {server => backend}/src/services/actions/calendar-creator.service.ts (100%) rename {server => backend}/src/services/actions/calendar-extractor.service.ts (100%) rename {server => backend}/src/services/actions/digest-generator.service.ts (100%) rename {server => backend}/src/services/actions/expense-extractor.service.ts (100%) rename {server => backend}/src/services/actions/reminder-scheduler.service.ts (100%) rename {server => backend}/src/services/ai-providers/ollama.provider.ts (100%) rename {server => backend}/src/services/ai.service.ts (100%) rename {server => backend}/src/services/ai/feedback-collector.service.ts (100%) rename {server => backend}/src/services/auth.service.ts (100%) rename {server => backend}/src/services/email-sender.service.ts (100%) rename {server => backend}/src/services/event-bus.service.ts (100%) rename {server => backend}/src/services/feedback-collector.service.ts (100%) rename {server => backend}/src/services/gmail-sync.service.ts (100%) rename {server => backend}/src/services/imap.service.ts (100%) rename {server => backend}/src/services/outlook-sync.service.ts (100%) rename {server => backend}/src/services/outputs/email-digest.adapter.ts (100%) rename {server => backend}/src/services/parser/link-attachment-extractor.service.ts (100%) rename {server => backend}/src/services/redis.service.ts (100%) rename {server => backend}/src/services/rules-engine.service.ts (100%) rename {server => backend}/src/services/telegram-bot.service.ts (100%) rename {server => backend}/src/services/telegram-notification.service.ts (100%) rename {server => backend}/src/services/webhook-dispatcher.service.ts (100%) rename {server => backend}/src/services/websocket.service.ts (100%) rename {server => backend}/src/services/whatsapp.adapter.ts (100%) rename {server => backend}/src/test-action-items.ts (100%) rename {server => backend}/src/test-classifier.ts (100%) rename {server => backend}/src/test-discord.ts (100%) rename {server => backend}/src/test-embeddings.ts (100%) rename {server => backend}/src/test-gravatar.ts (100%) rename {server => backend}/src/test-slack.ts (100%) rename {server => backend}/src/test-summary.ts (100%) rename {server => backend}/src/utils/bullmq-wrapper.ts (100%) rename {server => backend}/src/utils/crypto.ts (100%) rename {server => backend}/src/utils/gravatar.ts (100%) rename {server => backend}/src/utils/logger.ts (100%) rename {server => backend}/src/utils/metrics.ts (100%) rename {server => backend}/src/utils/password-strength.ts (100%) rename {server => backend}/src/utils/redis-health.ts (100%) rename {server => backend}/src/utils/redis-patch.ts (100%) rename {server => backend}/src/worker.ts (100%) rename {server => backend}/test_oauth.js (100%) rename {server => backend}/tsconfig.json (100%) rename {client => frontend}/.dockerignore (100%) rename {client => frontend}/.env.example (100%) rename {client => frontend}/.eslintignore (100%) rename {client => frontend}/.eslintrc.cjs (100%) rename {client => frontend}/.gitignore (100%) rename {client => frontend}/.oxlintrc.json (100%) rename {client => frontend}/.prettierignore (100%) rename {server => frontend}/.prettierrc (100%) rename {client => frontend}/Dockerfile (100%) rename {client => frontend}/README.md (100%) rename {client => frontend}/cypress.config.cjs (100%) rename {client => frontend}/cypress/e2e/login.cy.js (100%) rename {client => frontend}/index.html (100%) rename {client => frontend}/lighthouse-report.json (100%) rename {client => frontend}/nginx.conf (100%) rename {client => frontend}/package.json (100%) rename {client => frontend}/postcss.config.js (100%) rename {client => frontend}/public/assets/.gitkeep (100%) rename {client => frontend}/public/favicon.svg (100%) rename {client => frontend}/public/icons.svg (100%) rename {client => frontend}/src/App.css (100%) rename {client => frontend}/src/App.tsx (100%) rename {client => frontend}/src/assets/hero.png (100%) rename {client => frontend}/src/assets/react.svg (100%) rename {client => frontend}/src/assets/vite.svg (100%) rename {client => frontend}/src/components/AuthLayout.tsx (100%) rename {client => frontend}/src/components/Avatar.tsx (100%) rename {client => frontend}/src/components/Button.tsx (100%) rename {client => frontend}/src/components/ComposeModal.tsx (100%) rename {client => frontend}/src/components/DeadlinesWidget.tsx (100%) rename {client => frontend}/src/components/EmailList.tsx (100%) rename {client => frontend}/src/components/EmailRow.tsx (100%) rename {client => frontend}/src/components/EmailSkeleton.tsx (100%) rename {client => frontend}/src/components/EmailViewer.tsx (100%) rename {client => frontend}/src/components/EmptyState.tsx (100%) rename {client => frontend}/src/components/FloatingActionButton.tsx (100%) rename {client => frontend}/src/components/LandingPage.tsx (100%) rename {client => frontend}/src/components/Layout.tsx (100%) rename {client => frontend}/src/components/LoginForm.tsx (100%) rename {client => frontend}/src/components/Modal.tsx (100%) rename {client => frontend}/src/components/ProtectedRoute.tsx (100%) rename {client => frontend}/src/components/RegisterForm.tsx (100%) rename {client => frontend}/src/components/SidebarNav.tsx (100%) rename {client => frontend}/src/config.ts (100%) rename {client => frontend}/src/context/AuthContext.tsx (100%) rename {client => frontend}/src/context/ComposeContext.tsx (100%) rename {client => frontend}/src/context/SocketContext.tsx (100%) rename {client => frontend}/src/firebase.ts (100%) rename {client => frontend}/src/index.css (100%) rename {client => frontend}/src/main.tsx (100%) rename {client => frontend}/src/pages/AnalyticsPage.tsx (100%) rename {client => frontend}/tailwind.config.js (100%) rename {client => frontend}/tsconfig.app.json (100%) rename {client => frontend}/tsconfig.json (100%) rename {client => frontend}/tsconfig.node.json (100%) rename {client => frontend}/vite.config.ts (100%) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5bbf3fc..fda24f1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -40,33 +40,33 @@ jobs: # Backend Jobs # ========================================== - name: Install Backend Dependencies - working-directory: ./server + working-directory: ./backend run: npm ci - name: Audit Backend Dependencies - working-directory: ./server + working-directory: ./backend run: npm audit --audit-level=high - name: Generate Prisma Client - working-directory: ./server + working-directory: ./backend run: npx prisma generate - name: Setup Test Database Schema - working-directory: ./server + working-directory: ./backend run: npx prisma db push env: DATABASE_URL: postgresql://postgres:postgres@localhost:5432/inboxos_test - name: Run Backend Lint - working-directory: ./server + working-directory: ./backend run: npm run lint - name: Run Backend Typecheck - working-directory: ./server + working-directory: ./backend run: npm run typecheck - name: Run Backend Tests - working-directory: ./server + working-directory: ./backend run: npm run test env: DATABASE_URL: postgresql://postgres:postgres@localhost:5432/inboxos_test @@ -75,21 +75,21 @@ jobs: # Frontend Jobs # ========================================== - name: Install Frontend Dependencies - working-directory: ./client + working-directory: ./frontend run: npm ci - name: Audit Frontend Dependencies - working-directory: ./client + working-directory: ./frontend run: npm audit --audit-level=high - name: Run Frontend Lint - working-directory: ./client + working-directory: ./frontend run: npm run lint - name: Run Frontend Typecheck - working-directory: ./client + working-directory: ./frontend run: npm run typecheck - name: Run Frontend Tests - working-directory: ./client + working-directory: ./frontend run: npm run test diff --git a/README.md b/README.md index 5d07b77..50c3d82 100644 --- a/README.md +++ b/README.md @@ -352,8 +352,8 @@ This monorepo isolates individual layers and clients under clean folders. All sy ```text InboxOS/ ├── .github/ # Community files, PR templates, GitHub Actions -├── client/ # React frontend client (Vite) -├── server/ # Node.js backend server (Express + Prisma) +├── frontend/ # React frontend client (Vite) +├── backend/ # Node.js backend server (Express + Prisma) ├── packages/ # Decoupled libraries and shared modules ├── scripts/ # Build, setup, and deployment scripts ├── docs/ # Developer manuals & architecture logs @@ -395,11 +395,11 @@ cd inboxos cp scripts/config/env/.env.example scripts/config/env/.env # Edit scripts/config/env/.env with your secrets -# 3. Spin up all services (PostgreSQL, Redis, Server, Client) +# 3. Spin up all services (PostgreSQL, Redis, Backend, Frontend) docker compose up -d # 4. Execute database migrations -docker compose exec server npx prisma db push +docker compose exec backend npx prisma db push # 5. Open the Dashboard UI # Access the dashboard at http://localhost @@ -413,15 +413,15 @@ For active local debugging of individual services without Docker containerizatio #### 1. Backend API Server ```bash -cd server +cd backend npm install -# Configure server/.env or use scripts/config/env/.env +# Configure backend/.env or use scripts/config/env/.env npm start ``` #### 2. Frontend Dashboard UI (new terminal) ```bash -cd client +cd frontend npm install npm run dev ``` @@ -475,12 +475,12 @@ Create your configuration files inside `infrastructure/config/env/`. ### Backend Deploy (DigitalOcean App Platform / Render) 1. Provision a managed **PostgreSQL 15** and **Redis** instance. -2. Build the Dockerfile context from `server/` folder. +2. Build the Dockerfile context from `backend/` folder. 3. Bind the environment variables to point to production endpoints (ensure `NODE_ENV=production` is set). 4. Run `npx prisma db push` or `npx prisma migrate deploy` to deploy the database schema. ### Frontend Deploy (Vercel) -1. Connect the repository and configure target build directory to `client`. +1. Connect the repository and configure target build directory to `frontend`. 2. Configure build framework presets to **Vite**. 3. Supply `VITE_API_BASE_URL` env parameter pointing to the live API backend server. diff --git a/server/.env.example b/backend/.env.example similarity index 100% rename from server/.env.example rename to backend/.env.example diff --git a/server/.eslintignore b/backend/.eslintignore similarity index 100% rename from server/.eslintignore rename to backend/.eslintignore diff --git a/server/.eslintrc.js b/backend/.eslintrc.js similarity index 100% rename from server/.eslintrc.js rename to backend/.eslintrc.js diff --git a/server/.prettierignore b/backend/.prettierignore similarity index 100% rename from server/.prettierignore rename to backend/.prettierignore diff --git a/client/.prettierrc b/backend/.prettierrc similarity index 100% rename from client/.prettierrc rename to backend/.prettierrc diff --git a/server/Dockerfile b/backend/Dockerfile similarity index 100% rename from server/Dockerfile rename to backend/Dockerfile diff --git a/server/apps/api/inboxos.db-journal b/backend/apps/api/inboxos.db-journal similarity index 100% rename from server/apps/api/inboxos.db-journal rename to backend/apps/api/inboxos.db-journal diff --git a/server/jest.config.js b/backend/jest.config.js similarity index 100% rename from server/jest.config.js rename to backend/jest.config.js diff --git a/server/package.json b/backend/package.json similarity index 100% rename from server/package.json rename to backend/package.json diff --git a/server/parse_eml.js b/backend/parse_eml.js similarity index 100% rename from server/parse_eml.js rename to backend/parse_eml.js diff --git a/server/prisma/migrations/20260703000000_init_postgres/migration.sql b/backend/prisma/migrations/20260703000000_init_postgres/migration.sql similarity index 100% rename from server/prisma/migrations/20260703000000_init_postgres/migration.sql rename to backend/prisma/migrations/20260703000000_init_postgres/migration.sql diff --git a/server/prisma/migrations/20260704083018_add_calendar_event_and_integration/migration.sql b/backend/prisma/migrations/20260704083018_add_calendar_event_and_integration/migration.sql similarity index 100% rename from server/prisma/migrations/20260704083018_add_calendar_event_and_integration/migration.sql rename to backend/prisma/migrations/20260704083018_add_calendar_event_and_integration/migration.sql diff --git a/server/prisma/migrations/migration_lock.toml b/backend/prisma/migrations/migration_lock.toml similarity index 100% rename from server/prisma/migrations/migration_lock.toml rename to backend/prisma/migrations/migration_lock.toml diff --git a/server/prisma/schema.prisma b/backend/prisma/schema.prisma similarity index 100% rename from server/prisma/schema.prisma rename to backend/prisma/schema.prisma diff --git a/server/prisma/seed.ts b/backend/prisma/seed.ts similarity index 100% rename from server/prisma/seed.ts rename to backend/prisma/seed.ts diff --git a/server/render.yaml b/backend/render.yaml similarity index 100% rename from server/render.yaml rename to backend/render.yaml diff --git a/server/sample.eml b/backend/sample.eml similarity index 100% rename from server/sample.eml rename to backend/sample.eml diff --git a/server/sample_no_attachments.eml b/backend/sample_no_attachments.eml similarity index 100% rename from server/sample_no_attachments.eml rename to backend/sample_no_attachments.eml diff --git a/server/src/__mocks__/firebase-admin.ts b/backend/src/__mocks__/firebase-admin.ts similarity index 100% rename from server/src/__mocks__/firebase-admin.ts rename to backend/src/__mocks__/firebase-admin.ts diff --git a/server/src/__tests__/calendar-extractor.test.ts b/backend/src/__tests__/calendar-extractor.test.ts similarity index 100% rename from server/src/__tests__/calendar-extractor.test.ts rename to backend/src/__tests__/calendar-extractor.test.ts diff --git a/server/src/__tests__/calendar-routes.test.ts b/backend/src/__tests__/calendar-routes.test.ts similarity index 100% rename from server/src/__tests__/calendar-routes.test.ts rename to backend/src/__tests__/calendar-routes.test.ts diff --git a/server/src/__tests__/digest.test.ts b/backend/src/__tests__/digest.test.ts similarity index 100% rename from server/src/__tests__/digest.test.ts rename to backend/src/__tests__/digest.test.ts diff --git a/server/src/__tests__/expense.test.ts b/backend/src/__tests__/expense.test.ts similarity index 100% rename from server/src/__tests__/expense.test.ts rename to backend/src/__tests__/expense.test.ts diff --git a/server/src/__tests__/feedback.test.ts b/backend/src/__tests__/feedback.test.ts similarity index 100% rename from server/src/__tests__/feedback.test.ts rename to backend/src/__tests__/feedback.test.ts diff --git a/server/src/__tests__/health.test.ts b/backend/src/__tests__/health.test.ts similarity index 100% rename from server/src/__tests__/health.test.ts rename to backend/src/__tests__/health.test.ts diff --git a/server/src/__tests__/link-attachment-extractor.test.ts b/backend/src/__tests__/link-attachment-extractor.test.ts similarity index 100% rename from server/src/__tests__/link-attachment-extractor.test.ts rename to backend/src/__tests__/link-attachment-extractor.test.ts diff --git a/server/src/__tests__/password-strength.test.ts b/backend/src/__tests__/password-strength.test.ts similarity index 100% rename from server/src/__tests__/password-strength.test.ts rename to backend/src/__tests__/password-strength.test.ts diff --git a/server/src/__tests__/profile.test.ts b/backend/src/__tests__/profile.test.ts similarity index 100% rename from server/src/__tests__/profile.test.ts rename to backend/src/__tests__/profile.test.ts diff --git a/server/src/__tests__/reminder.test.ts b/backend/src/__tests__/reminder.test.ts similarity index 100% rename from server/src/__tests__/reminder.test.ts rename to backend/src/__tests__/reminder.test.ts diff --git a/server/src/__tests__/search.test.ts b/backend/src/__tests__/search.test.ts similarity index 100% rename from server/src/__tests__/search.test.ts rename to backend/src/__tests__/search.test.ts diff --git a/server/src/check_emails.ts b/backend/src/check_emails.ts similarity index 100% rename from server/src/check_emails.ts rename to backend/src/check_emails.ts diff --git a/server/src/config/swagger.ts b/backend/src/config/swagger.ts similarity index 100% rename from server/src/config/swagger.ts rename to backend/src/config/swagger.ts diff --git a/server/src/config/telegram.config.ts b/backend/src/config/telegram.config.ts similarity index 100% rename from server/src/config/telegram.config.ts rename to backend/src/config/telegram.config.ts diff --git a/server/src/index.ts b/backend/src/index.ts similarity index 100% rename from server/src/index.ts rename to backend/src/index.ts diff --git a/server/src/jobs/calendar-events.job.ts b/backend/src/jobs/calendar-events.job.ts similarity index 100% rename from server/src/jobs/calendar-events.job.ts rename to backend/src/jobs/calendar-events.job.ts diff --git a/server/src/jobs/digest-scheduler.job.ts b/backend/src/jobs/digest-scheduler.job.ts similarity index 100% rename from server/src/jobs/digest-scheduler.job.ts rename to backend/src/jobs/digest-scheduler.job.ts diff --git a/server/src/jobs/index-emails.job.ts b/backend/src/jobs/index-emails.job.ts similarity index 100% rename from server/src/jobs/index-emails.job.ts rename to backend/src/jobs/index-emails.job.ts diff --git a/server/src/jobs/reminder.job.ts b/backend/src/jobs/reminder.job.ts similarity index 100% rename from server/src/jobs/reminder.job.ts rename to backend/src/jobs/reminder.job.ts diff --git a/server/src/middleware/auth.middleware.ts b/backend/src/middleware/auth.middleware.ts similarity index 100% rename from server/src/middleware/auth.middleware.ts rename to backend/src/middleware/auth.middleware.ts diff --git a/server/src/middleware/rate-limiter.middleware.ts b/backend/src/middleware/rate-limiter.middleware.ts similarity index 100% rename from server/src/middleware/rate-limiter.middleware.ts rename to backend/src/middleware/rate-limiter.middleware.ts diff --git a/server/src/reminder-worker.ts b/backend/src/reminder-worker.ts similarity index 100% rename from server/src/reminder-worker.ts rename to backend/src/reminder-worker.ts diff --git a/server/src/routes/ai.routes.ts b/backend/src/routes/ai.routes.ts similarity index 100% rename from server/src/routes/ai.routes.ts rename to backend/src/routes/ai.routes.ts diff --git a/server/src/routes/calendar.routes.ts b/backend/src/routes/calendar.routes.ts similarity index 100% rename from server/src/routes/calendar.routes.ts rename to backend/src/routes/calendar.routes.ts diff --git a/server/src/routes/digests.routes.ts b/backend/src/routes/digests.routes.ts similarity index 100% rename from server/src/routes/digests.routes.ts rename to backend/src/routes/digests.routes.ts diff --git a/server/src/routes/expenses.routes.ts b/backend/src/routes/expenses.routes.ts similarity index 100% rename from server/src/routes/expenses.routes.ts rename to backend/src/routes/expenses.routes.ts diff --git a/server/src/routes/feedback.routes.ts b/backend/src/routes/feedback.routes.ts similarity index 100% rename from server/src/routes/feedback.routes.ts rename to backend/src/routes/feedback.routes.ts diff --git a/server/src/routes/integrations.routes.ts b/backend/src/routes/integrations.routes.ts similarity index 100% rename from server/src/routes/integrations.routes.ts rename to backend/src/routes/integrations.routes.ts diff --git a/server/src/routes/notifications.routes.ts b/backend/src/routes/notifications.routes.ts similarity index 100% rename from server/src/routes/notifications.routes.ts rename to backend/src/routes/notifications.routes.ts diff --git a/server/src/routes/rag.routes.ts b/backend/src/routes/rag.routes.ts similarity index 100% rename from server/src/routes/rag.routes.ts rename to backend/src/routes/rag.routes.ts diff --git a/server/src/routes/reminders.routes.ts b/backend/src/routes/reminders.routes.ts similarity index 100% rename from server/src/routes/reminders.routes.ts rename to backend/src/routes/reminders.routes.ts diff --git a/server/src/routes/tasks.routes.ts b/backend/src/routes/tasks.routes.ts similarity index 100% rename from server/src/routes/tasks.routes.ts rename to backend/src/routes/tasks.routes.ts diff --git a/server/src/scratch-chrono.ts b/backend/src/scratch-chrono.ts similarity index 100% rename from server/src/scratch-chrono.ts rename to backend/src/scratch-chrono.ts diff --git a/server/src/scripts/migrate-categories.ts b/backend/src/scripts/migrate-categories.ts similarity index 100% rename from server/src/scripts/migrate-categories.ts rename to backend/src/scripts/migrate-categories.ts diff --git a/server/src/server.ts b/backend/src/server.ts similarity index 100% rename from server/src/server.ts rename to backend/src/server.ts diff --git a/server/src/services/DiscordNotifier.ts b/backend/src/services/DiscordNotifier.ts similarity index 100% rename from server/src/services/DiscordNotifier.ts rename to backend/src/services/DiscordNotifier.ts diff --git a/server/src/services/KeywordFilter.ts b/backend/src/services/KeywordFilter.ts similarity index 100% rename from server/src/services/KeywordFilter.ts rename to backend/src/services/KeywordFilter.ts diff --git a/server/src/services/SlackNotifier.ts b/backend/src/services/SlackNotifier.ts similarity index 100% rename from server/src/services/SlackNotifier.ts rename to backend/src/services/SlackNotifier.ts diff --git a/server/src/services/actions/calendar-creator.service.ts b/backend/src/services/actions/calendar-creator.service.ts similarity index 100% rename from server/src/services/actions/calendar-creator.service.ts rename to backend/src/services/actions/calendar-creator.service.ts diff --git a/server/src/services/actions/calendar-extractor.service.ts b/backend/src/services/actions/calendar-extractor.service.ts similarity index 100% rename from server/src/services/actions/calendar-extractor.service.ts rename to backend/src/services/actions/calendar-extractor.service.ts diff --git a/server/src/services/actions/digest-generator.service.ts b/backend/src/services/actions/digest-generator.service.ts similarity index 100% rename from server/src/services/actions/digest-generator.service.ts rename to backend/src/services/actions/digest-generator.service.ts diff --git a/server/src/services/actions/expense-extractor.service.ts b/backend/src/services/actions/expense-extractor.service.ts similarity index 100% rename from server/src/services/actions/expense-extractor.service.ts rename to backend/src/services/actions/expense-extractor.service.ts diff --git a/server/src/services/actions/reminder-scheduler.service.ts b/backend/src/services/actions/reminder-scheduler.service.ts similarity index 100% rename from server/src/services/actions/reminder-scheduler.service.ts rename to backend/src/services/actions/reminder-scheduler.service.ts diff --git a/server/src/services/ai-providers/ollama.provider.ts b/backend/src/services/ai-providers/ollama.provider.ts similarity index 100% rename from server/src/services/ai-providers/ollama.provider.ts rename to backend/src/services/ai-providers/ollama.provider.ts diff --git a/server/src/services/ai.service.ts b/backend/src/services/ai.service.ts similarity index 100% rename from server/src/services/ai.service.ts rename to backend/src/services/ai.service.ts diff --git a/server/src/services/ai/feedback-collector.service.ts b/backend/src/services/ai/feedback-collector.service.ts similarity index 100% rename from server/src/services/ai/feedback-collector.service.ts rename to backend/src/services/ai/feedback-collector.service.ts diff --git a/server/src/services/auth.service.ts b/backend/src/services/auth.service.ts similarity index 100% rename from server/src/services/auth.service.ts rename to backend/src/services/auth.service.ts diff --git a/server/src/services/email-sender.service.ts b/backend/src/services/email-sender.service.ts similarity index 100% rename from server/src/services/email-sender.service.ts rename to backend/src/services/email-sender.service.ts diff --git a/server/src/services/event-bus.service.ts b/backend/src/services/event-bus.service.ts similarity index 100% rename from server/src/services/event-bus.service.ts rename to backend/src/services/event-bus.service.ts diff --git a/server/src/services/feedback-collector.service.ts b/backend/src/services/feedback-collector.service.ts similarity index 100% rename from server/src/services/feedback-collector.service.ts rename to backend/src/services/feedback-collector.service.ts diff --git a/server/src/services/gmail-sync.service.ts b/backend/src/services/gmail-sync.service.ts similarity index 100% rename from server/src/services/gmail-sync.service.ts rename to backend/src/services/gmail-sync.service.ts diff --git a/server/src/services/imap.service.ts b/backend/src/services/imap.service.ts similarity index 100% rename from server/src/services/imap.service.ts rename to backend/src/services/imap.service.ts diff --git a/server/src/services/outlook-sync.service.ts b/backend/src/services/outlook-sync.service.ts similarity index 100% rename from server/src/services/outlook-sync.service.ts rename to backend/src/services/outlook-sync.service.ts diff --git a/server/src/services/outputs/email-digest.adapter.ts b/backend/src/services/outputs/email-digest.adapter.ts similarity index 100% rename from server/src/services/outputs/email-digest.adapter.ts rename to backend/src/services/outputs/email-digest.adapter.ts diff --git a/server/src/services/parser/link-attachment-extractor.service.ts b/backend/src/services/parser/link-attachment-extractor.service.ts similarity index 100% rename from server/src/services/parser/link-attachment-extractor.service.ts rename to backend/src/services/parser/link-attachment-extractor.service.ts diff --git a/server/src/services/redis.service.ts b/backend/src/services/redis.service.ts similarity index 100% rename from server/src/services/redis.service.ts rename to backend/src/services/redis.service.ts diff --git a/server/src/services/rules-engine.service.ts b/backend/src/services/rules-engine.service.ts similarity index 100% rename from server/src/services/rules-engine.service.ts rename to backend/src/services/rules-engine.service.ts diff --git a/server/src/services/telegram-bot.service.ts b/backend/src/services/telegram-bot.service.ts similarity index 100% rename from server/src/services/telegram-bot.service.ts rename to backend/src/services/telegram-bot.service.ts diff --git a/server/src/services/telegram-notification.service.ts b/backend/src/services/telegram-notification.service.ts similarity index 100% rename from server/src/services/telegram-notification.service.ts rename to backend/src/services/telegram-notification.service.ts diff --git a/server/src/services/webhook-dispatcher.service.ts b/backend/src/services/webhook-dispatcher.service.ts similarity index 100% rename from server/src/services/webhook-dispatcher.service.ts rename to backend/src/services/webhook-dispatcher.service.ts diff --git a/server/src/services/websocket.service.ts b/backend/src/services/websocket.service.ts similarity index 100% rename from server/src/services/websocket.service.ts rename to backend/src/services/websocket.service.ts diff --git a/server/src/services/whatsapp.adapter.ts b/backend/src/services/whatsapp.adapter.ts similarity index 100% rename from server/src/services/whatsapp.adapter.ts rename to backend/src/services/whatsapp.adapter.ts diff --git a/server/src/test-action-items.ts b/backend/src/test-action-items.ts similarity index 100% rename from server/src/test-action-items.ts rename to backend/src/test-action-items.ts diff --git a/server/src/test-classifier.ts b/backend/src/test-classifier.ts similarity index 100% rename from server/src/test-classifier.ts rename to backend/src/test-classifier.ts diff --git a/server/src/test-discord.ts b/backend/src/test-discord.ts similarity index 100% rename from server/src/test-discord.ts rename to backend/src/test-discord.ts diff --git a/server/src/test-embeddings.ts b/backend/src/test-embeddings.ts similarity index 100% rename from server/src/test-embeddings.ts rename to backend/src/test-embeddings.ts diff --git a/server/src/test-gravatar.ts b/backend/src/test-gravatar.ts similarity index 100% rename from server/src/test-gravatar.ts rename to backend/src/test-gravatar.ts diff --git a/server/src/test-slack.ts b/backend/src/test-slack.ts similarity index 100% rename from server/src/test-slack.ts rename to backend/src/test-slack.ts diff --git a/server/src/test-summary.ts b/backend/src/test-summary.ts similarity index 100% rename from server/src/test-summary.ts rename to backend/src/test-summary.ts diff --git a/server/src/utils/bullmq-wrapper.ts b/backend/src/utils/bullmq-wrapper.ts similarity index 100% rename from server/src/utils/bullmq-wrapper.ts rename to backend/src/utils/bullmq-wrapper.ts diff --git a/server/src/utils/crypto.ts b/backend/src/utils/crypto.ts similarity index 100% rename from server/src/utils/crypto.ts rename to backend/src/utils/crypto.ts diff --git a/server/src/utils/gravatar.ts b/backend/src/utils/gravatar.ts similarity index 100% rename from server/src/utils/gravatar.ts rename to backend/src/utils/gravatar.ts diff --git a/server/src/utils/logger.ts b/backend/src/utils/logger.ts similarity index 100% rename from server/src/utils/logger.ts rename to backend/src/utils/logger.ts diff --git a/server/src/utils/metrics.ts b/backend/src/utils/metrics.ts similarity index 100% rename from server/src/utils/metrics.ts rename to backend/src/utils/metrics.ts diff --git a/server/src/utils/password-strength.ts b/backend/src/utils/password-strength.ts similarity index 100% rename from server/src/utils/password-strength.ts rename to backend/src/utils/password-strength.ts diff --git a/server/src/utils/redis-health.ts b/backend/src/utils/redis-health.ts similarity index 100% rename from server/src/utils/redis-health.ts rename to backend/src/utils/redis-health.ts diff --git a/server/src/utils/redis-patch.ts b/backend/src/utils/redis-patch.ts similarity index 100% rename from server/src/utils/redis-patch.ts rename to backend/src/utils/redis-patch.ts diff --git a/server/src/worker.ts b/backend/src/worker.ts similarity index 100% rename from server/src/worker.ts rename to backend/src/worker.ts diff --git a/server/test_oauth.js b/backend/test_oauth.js similarity index 100% rename from server/test_oauth.js rename to backend/test_oauth.js diff --git a/server/tsconfig.json b/backend/tsconfig.json similarity index 100% rename from server/tsconfig.json rename to backend/tsconfig.json diff --git a/docker-compose.yml b/docker-compose.yml index b2bf5ef..6dd9a42 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -41,7 +41,7 @@ services: # ========================================== backend: build: - context: ./server + context: ./backend dockerfile: Dockerfile target: dev restart: unless-stopped @@ -62,7 +62,7 @@ services: - GEMINI_API_KEY=${GEMINI_API_KEY:-} - AI_PROVIDER=${AI_PROVIDER:-openai} volumes: - - ./server:/usr/src/app + - ./backend:/usr/src/app # Anonymous volume to preserve node_modules installed inside the container - /usr/src/app/node_modules depends_on: @@ -78,7 +78,7 @@ services: # ========================================== frontend: build: - context: ./client + context: ./frontend dockerfile: Dockerfile target: dev restart: unless-stopped @@ -87,7 +87,7 @@ services: environment: - VITE_API_BASE_URL=http://localhost:8000 volumes: - - ./client:/app + - ./frontend:/app # Anonymous volume to preserve node_modules installed inside the container - /app/node_modules depends_on: diff --git a/docs/contributing/CONTRIBUTING.md b/docs/contributing/CONTRIBUTING.md index 64605f8..dd0df16 100644 --- a/docs/contributing/CONTRIBUTING.md +++ b/docs/contributing/CONTRIBUTING.md @@ -99,10 +99,10 @@ When you're ready, submit a Pull Request to merge your branch back into our `mai ``` 2. **Run Linting & Tests:** Ensure all tests pass and there are no compilation errors: ```bash - # In the server directory + # In the backend directory npm run typecheck - # In the client directory + # In the frontend directory npm run typecheck ``` 3. **Format Code:** Keep code styling consistent. diff --git a/client/.dockerignore b/frontend/.dockerignore similarity index 100% rename from client/.dockerignore rename to frontend/.dockerignore diff --git a/client/.env.example b/frontend/.env.example similarity index 100% rename from client/.env.example rename to frontend/.env.example diff --git a/client/.eslintignore b/frontend/.eslintignore similarity index 100% rename from client/.eslintignore rename to frontend/.eslintignore diff --git a/client/.eslintrc.cjs b/frontend/.eslintrc.cjs similarity index 100% rename from client/.eslintrc.cjs rename to frontend/.eslintrc.cjs diff --git a/client/.gitignore b/frontend/.gitignore similarity index 100% rename from client/.gitignore rename to frontend/.gitignore diff --git a/client/.oxlintrc.json b/frontend/.oxlintrc.json similarity index 100% rename from client/.oxlintrc.json rename to frontend/.oxlintrc.json diff --git a/client/.prettierignore b/frontend/.prettierignore similarity index 100% rename from client/.prettierignore rename to frontend/.prettierignore diff --git a/server/.prettierrc b/frontend/.prettierrc similarity index 100% rename from server/.prettierrc rename to frontend/.prettierrc diff --git a/client/Dockerfile b/frontend/Dockerfile similarity index 100% rename from client/Dockerfile rename to frontend/Dockerfile diff --git a/client/README.md b/frontend/README.md similarity index 100% rename from client/README.md rename to frontend/README.md diff --git a/client/cypress.config.cjs b/frontend/cypress.config.cjs similarity index 100% rename from client/cypress.config.cjs rename to frontend/cypress.config.cjs diff --git a/client/cypress/e2e/login.cy.js b/frontend/cypress/e2e/login.cy.js similarity index 100% rename from client/cypress/e2e/login.cy.js rename to frontend/cypress/e2e/login.cy.js diff --git a/client/index.html b/frontend/index.html similarity index 100% rename from client/index.html rename to frontend/index.html diff --git a/client/lighthouse-report.json b/frontend/lighthouse-report.json similarity index 100% rename from client/lighthouse-report.json rename to frontend/lighthouse-report.json diff --git a/client/nginx.conf b/frontend/nginx.conf similarity index 100% rename from client/nginx.conf rename to frontend/nginx.conf diff --git a/client/package.json b/frontend/package.json similarity index 100% rename from client/package.json rename to frontend/package.json diff --git a/client/postcss.config.js b/frontend/postcss.config.js similarity index 100% rename from client/postcss.config.js rename to frontend/postcss.config.js diff --git a/client/public/assets/.gitkeep b/frontend/public/assets/.gitkeep similarity index 100% rename from client/public/assets/.gitkeep rename to frontend/public/assets/.gitkeep diff --git a/client/public/favicon.svg b/frontend/public/favicon.svg similarity index 100% rename from client/public/favicon.svg rename to frontend/public/favicon.svg diff --git a/client/public/icons.svg b/frontend/public/icons.svg similarity index 100% rename from client/public/icons.svg rename to frontend/public/icons.svg diff --git a/client/src/App.css b/frontend/src/App.css similarity index 100% rename from client/src/App.css rename to frontend/src/App.css diff --git a/client/src/App.tsx b/frontend/src/App.tsx similarity index 100% rename from client/src/App.tsx rename to frontend/src/App.tsx diff --git a/client/src/assets/hero.png b/frontend/src/assets/hero.png similarity index 100% rename from client/src/assets/hero.png rename to frontend/src/assets/hero.png diff --git a/client/src/assets/react.svg b/frontend/src/assets/react.svg similarity index 100% rename from client/src/assets/react.svg rename to frontend/src/assets/react.svg diff --git a/client/src/assets/vite.svg b/frontend/src/assets/vite.svg similarity index 100% rename from client/src/assets/vite.svg rename to frontend/src/assets/vite.svg diff --git a/client/src/components/AuthLayout.tsx b/frontend/src/components/AuthLayout.tsx similarity index 100% rename from client/src/components/AuthLayout.tsx rename to frontend/src/components/AuthLayout.tsx diff --git a/client/src/components/Avatar.tsx b/frontend/src/components/Avatar.tsx similarity index 100% rename from client/src/components/Avatar.tsx rename to frontend/src/components/Avatar.tsx diff --git a/client/src/components/Button.tsx b/frontend/src/components/Button.tsx similarity index 100% rename from client/src/components/Button.tsx rename to frontend/src/components/Button.tsx diff --git a/client/src/components/ComposeModal.tsx b/frontend/src/components/ComposeModal.tsx similarity index 100% rename from client/src/components/ComposeModal.tsx rename to frontend/src/components/ComposeModal.tsx diff --git a/client/src/components/DeadlinesWidget.tsx b/frontend/src/components/DeadlinesWidget.tsx similarity index 100% rename from client/src/components/DeadlinesWidget.tsx rename to frontend/src/components/DeadlinesWidget.tsx diff --git a/client/src/components/EmailList.tsx b/frontend/src/components/EmailList.tsx similarity index 100% rename from client/src/components/EmailList.tsx rename to frontend/src/components/EmailList.tsx diff --git a/client/src/components/EmailRow.tsx b/frontend/src/components/EmailRow.tsx similarity index 100% rename from client/src/components/EmailRow.tsx rename to frontend/src/components/EmailRow.tsx diff --git a/client/src/components/EmailSkeleton.tsx b/frontend/src/components/EmailSkeleton.tsx similarity index 100% rename from client/src/components/EmailSkeleton.tsx rename to frontend/src/components/EmailSkeleton.tsx diff --git a/client/src/components/EmailViewer.tsx b/frontend/src/components/EmailViewer.tsx similarity index 100% rename from client/src/components/EmailViewer.tsx rename to frontend/src/components/EmailViewer.tsx diff --git a/client/src/components/EmptyState.tsx b/frontend/src/components/EmptyState.tsx similarity index 100% rename from client/src/components/EmptyState.tsx rename to frontend/src/components/EmptyState.tsx diff --git a/client/src/components/FloatingActionButton.tsx b/frontend/src/components/FloatingActionButton.tsx similarity index 100% rename from client/src/components/FloatingActionButton.tsx rename to frontend/src/components/FloatingActionButton.tsx diff --git a/client/src/components/LandingPage.tsx b/frontend/src/components/LandingPage.tsx similarity index 100% rename from client/src/components/LandingPage.tsx rename to frontend/src/components/LandingPage.tsx diff --git a/client/src/components/Layout.tsx b/frontend/src/components/Layout.tsx similarity index 100% rename from client/src/components/Layout.tsx rename to frontend/src/components/Layout.tsx diff --git a/client/src/components/LoginForm.tsx b/frontend/src/components/LoginForm.tsx similarity index 100% rename from client/src/components/LoginForm.tsx rename to frontend/src/components/LoginForm.tsx diff --git a/client/src/components/Modal.tsx b/frontend/src/components/Modal.tsx similarity index 100% rename from client/src/components/Modal.tsx rename to frontend/src/components/Modal.tsx diff --git a/client/src/components/ProtectedRoute.tsx b/frontend/src/components/ProtectedRoute.tsx similarity index 100% rename from client/src/components/ProtectedRoute.tsx rename to frontend/src/components/ProtectedRoute.tsx diff --git a/client/src/components/RegisterForm.tsx b/frontend/src/components/RegisterForm.tsx similarity index 100% rename from client/src/components/RegisterForm.tsx rename to frontend/src/components/RegisterForm.tsx diff --git a/client/src/components/SidebarNav.tsx b/frontend/src/components/SidebarNav.tsx similarity index 100% rename from client/src/components/SidebarNav.tsx rename to frontend/src/components/SidebarNav.tsx diff --git a/client/src/config.ts b/frontend/src/config.ts similarity index 100% rename from client/src/config.ts rename to frontend/src/config.ts diff --git a/client/src/context/AuthContext.tsx b/frontend/src/context/AuthContext.tsx similarity index 100% rename from client/src/context/AuthContext.tsx rename to frontend/src/context/AuthContext.tsx diff --git a/client/src/context/ComposeContext.tsx b/frontend/src/context/ComposeContext.tsx similarity index 100% rename from client/src/context/ComposeContext.tsx rename to frontend/src/context/ComposeContext.tsx diff --git a/client/src/context/SocketContext.tsx b/frontend/src/context/SocketContext.tsx similarity index 100% rename from client/src/context/SocketContext.tsx rename to frontend/src/context/SocketContext.tsx diff --git a/client/src/firebase.ts b/frontend/src/firebase.ts similarity index 100% rename from client/src/firebase.ts rename to frontend/src/firebase.ts diff --git a/client/src/index.css b/frontend/src/index.css similarity index 100% rename from client/src/index.css rename to frontend/src/index.css diff --git a/client/src/main.tsx b/frontend/src/main.tsx similarity index 100% rename from client/src/main.tsx rename to frontend/src/main.tsx diff --git a/client/src/pages/AnalyticsPage.tsx b/frontend/src/pages/AnalyticsPage.tsx similarity index 100% rename from client/src/pages/AnalyticsPage.tsx rename to frontend/src/pages/AnalyticsPage.tsx diff --git a/client/tailwind.config.js b/frontend/tailwind.config.js similarity index 100% rename from client/tailwind.config.js rename to frontend/tailwind.config.js diff --git a/client/tsconfig.app.json b/frontend/tsconfig.app.json similarity index 100% rename from client/tsconfig.app.json rename to frontend/tsconfig.app.json diff --git a/client/tsconfig.json b/frontend/tsconfig.json similarity index 100% rename from client/tsconfig.json rename to frontend/tsconfig.json diff --git a/client/tsconfig.node.json b/frontend/tsconfig.node.json similarity index 100% rename from client/tsconfig.node.json rename to frontend/tsconfig.node.json diff --git a/client/vite.config.ts b/frontend/vite.config.ts similarity index 100% rename from client/vite.config.ts rename to frontend/vite.config.ts diff --git a/package.json b/package.json index 334fd5f..db37987 100644 --- a/package.json +++ b/package.json @@ -3,8 +3,8 @@ "version": "1.0.0", "private": true, "workspaces": [ - "server", - "client", + "backend", + "frontend", "packages/*" ], "dependencies": {