No description
  • Vue 74.2%
  • TypeScript 21.3%
  • JavaScript 3.7%
  • SCSS 0.4%
  • Shell 0.3%
Find a file
Victor Von cf561f9363
All checks were successful
CI e deploy staging / test (push) Successful in 5m4s
CI e deploy staging / deploy (push) Successful in 2m29s
Merge remote-tracking branch 'origin/dev' into dev
2026-10-01 10:36:49 -03:00
.claude/commands chore(docs): organizar docs/ em subpastas por tipo 2026-08-21 16:50:58 -03:00
.forgejo/workflows ci(producao): gatilho por merge na main ou por tag, escolhido numa variavel 2026-09-28 10:49:41 -03:00
api/projects/[id] merge: sprint polida final completo (ondas 0-3 + emendas) na staging 2026-08-18 20:52:04 -03:00
assets feat: tema light creme suave com contrastes wcag corrigidos 2026-08-03 23:56:11 -03:00
components feat(projeto): botao "+ Novo" na trilha para criar tarefa, marco e jornada 2026-10-01 10:28:20 -03:00
composables merge: rodada de 09/set (estado por organizacao) sobre a dev 2.2.1 2026-09-21 10:56:27 -03:00
content feat(kanban): coluna backlog do template dev renomeada para Na fila (KAN-004, D7) 2026-08-11 22:10:03 -03:00
design-mocks design: maquetes das series de estudo 2026-09-01 16:09:03 -03:00
docker/etherpad feat(infra): onlyoffice e etherpad no compose de dev via profile docs 2026-08-18 11:31:31 -03:00
docs chore(release): npm run release cria e empurra a tag da versao da main 2026-10-01 09:54:42 -03:00
i18n feat(projeto): botao "+ Novo" na trilha para criar tarefa, marco e jornada 2026-10-01 10:28:20 -03:00
infra/deploy ci(producao): gatilho por merge na main ou por tag, escolhido numa variavel 2026-09-28 10:49:41 -03:00
layouts feat(auth): integra login local e OIDC com Authentik 2026-09-08 14:01:08 -03:00
middleware feat(auth): integra login local e OIDC com Authentik 2026-09-08 14:01:08 -03:00
nuxt2 i18n: extracao da ui e testids 2026-09-01 16:09:45 -03:00
pages feat(projeto): botao "+ Novo" na trilha para criar tarefa, marco e jornada 2026-10-01 10:28:20 -03:00
plugins feat(auth): integra login local e OIDC com Authentik 2026-09-08 14:01:08 -03:00
public fix(relatorio): descricao em markdown renderizada e logo da Terra Krya de volta 2026-09-24 11:34:46 -03:00
scripts chore(release): npm run release cria e empurra a tag da versao da main 2026-10-01 09:54:42 -03:00
server fix(relatorio): anexos de imagem, listas e quebras de linha no PDF 2026-09-24 13:29:13 -03:00
shared zulip: aviso de movimentacao de card, um canal por projeto 2026-09-08 15:09:51 -03:00
stores fix(organizacoes): trocar de org move o recorte da Biblioteca e descarta carga em voo 2026-09-21 10:53:51 -03:00
tests fix(relatorio): anexos de imagem, listas e quebras de linha no PDF 2026-09-24 13:29:13 -03:00
utils chore: versao 2.2.4 com o relatorio com imagens nas Novidades 2026-09-24 13:40:14 -03:00
.dockerignore ci: testes em container e deploy do staging por scripts root com versao 2026-09-10 16:37:25 -03:00
.env.example zulip: aviso de movimentacao de card, um canal por projeto 2026-09-08 15:09:51 -03:00
.env.production.example ci(producao): deploy automatico por tag, no runner do staging 2026-09-21 13:11:59 -03:00
.env.staging.example merge: integracao com o Zulip e versao 2.1.0 da main na dev 2026-09-16 11:57:22 -03:00
.gitignore chore: ignora o backup local lablab-bkp 2026-09-21 10:53:44 -03:00
.npmrc build: migracao de yarn para npm 2026-09-02 10:36:55 -03:00
app.vue i18n: modulo, locale, catalogos e guardas 2026-09-01 16:09:11 -03:00
dev.sh build: migracao de yarn para npm 2026-09-02 10:36:55 -03:00
docker-compose.local-prod.yml zulip: aviso de movimentacao de card, um canal por projeto 2026-09-08 15:09:51 -03:00
docker-compose.mongo.yml Add docker compose for MongoDB. 2026-03-19 15:42:31 -03:00
docker-compose.production.yml ci: um script de deploy para os dois ambientes, com o ambiente como argumento 2026-09-21 20:14:24 -03:00
docker-compose.staging.yml ci: um script de deploy para os dois ambientes, com o ambiente como argumento 2026-09-21 20:14:24 -03:00
docker-compose.yml chore(docs): organizar docs/ em subpastas por tipo 2026-08-21 16:50:58 -03:00
Dockerfile docker: npm no lugar do yarn e nuxt chamado direto no CMD 2026-09-09 08:20:10 -03:00
Dockerfile.production build: migracao de yarn para npm 2026-09-02 10:36:55 -03:00
Dockerfile.test ci: testes em container e deploy do staging por scripts root com versao 2026-09-10 16:37:25 -03:00
Dockerfile.test.dockerignore ci: testes em container e deploy do staging por scripts root com versao 2026-09-10 16:37:25 -03:00
eslint.config.mjs i18n: modulo, locale, catalogos e guardas 2026-09-01 16:09:11 -03:00
nuxt.config.ts zulip: aviso de movimentacao de card, um canal por projeto 2026-09-08 15:09:51 -03:00
package-lock.json chore: versao 2.2.4 com o relatorio com imagens nas Novidades 2026-09-24 13:40:14 -03:00
package.json chore(release): npm run release cria e empurra a tag da versao da main 2026-10-01 09:54:42 -03:00
playwright.config.ts test(e2e): suspende asserts de screenshot ate o fim do sprint da polida 2026-08-18 00:33:04 -03:00
README.md feat(auth): integra login local e OIDC com Authentik 2026-09-08 14:01:08 -03:00
TASKS.md feat: Complete Nuxt 3 migration with production Docker setup 2026-01-13 17:26:09 -03:00
TASKS_2026-03-06.md Restrict project time summary to organization members 2026-04-07 11:38:28 -03:00
tsconfig.json dev: tsserver deixa de vigiar node_modules e artefatos 2026-09-02 13:36:07 -03:00
vitest.config.ts wiki refactor 2026-07-20 04:33:20 +02:00

DevFlow - Nuxt 3

Modern rewrite of DevFlow using Nuxt 3, Vue 3 Composition API, and PrimeVue.

Tech Stack

  • Framework: Nuxt 3 with SSR
  • UI Library: PrimeVue 4 with Aura theme
  • State Management: Pinia
  • Database: MongoDB with Mongoose
  • Styling: SCSS with CSS variables

Quick Start

Runs the app and MongoDB together, with hot reload (client HMR + Nitro server rebuild). No Node/npm needed on the host — only Docker:

./dev.sh          # start (builds on first run) and wait until ready
./dev.sh logs     # follow app logs
./dev.sh rebuild  # after package.json changes (renews node_modules volume)
./dev.sh down     # stop everything (MongoDB data is kept)
./dev.sh help     # all commands
  • App: http://localhost:3001 — MongoDB: localhost:27017 (data persisted in the mongodb_data volume)
  • Edit files on the host as usual; changes are picked up inside the container.
  • A .env file is optional; MONGODB_URI is set by the compose file to point at the bundled MongoDB.
  • On macOS/Windows, if file changes are not detected, uncomment CHOKIDAR_USEPOLLING=true in docker-compose.yml.

Local (without Docker)

# Install dependencies
npm install

# Start development server (needs a MongoDB running, see .env)
npm run dev

# Seed a repeatable local scenario (two orgs, projects, tasks, time entries)
npm run db:seed:grande

# Build for production
npm run build
npm run preview

Project Structure

nuxt3/
├── assets/css/          # Global styles and SCSS variables
├── components/          # Vue components (auto-imported)
├── composables/         # Vue composables (auto-imported)
├── layouts/             # Page layouts
├── pages/               # File-based routing
├── plugins/             # Nuxt plugins
├── server/              # Nitro server (API routes, plugins)
├── stores/              # Pinia stores
└── nuxt.config.ts       # Nuxt configuration

Important Configuration

Component Auto-Import

Components are auto-imported without folder prefixes:

// nuxt.config.ts
components: {
  dirs: [{ path: '~/components', pathPrefix: false }]
}

Use <OrganizationInfo> not <OrganizationsOrganizationInfo>.

Environment Variables

Create .env file (optional when using Docker — the compose file already sets MONGODB_URI):

MONGODB_URI=mongodb://localhost:27017/devflow
SECRET=your-secret-key
BASE_URL=http://localhost:3001
# Where runtime uploads are written (default: public/uploads, relative to cwd)
UPLOADS_DIR=/app/uploads

Uploads

  • Files land in UPLOADS_DIR/images (plus images/thumbs) and UPLOADS_DIR/documents.
  • They are served by the Nitro route /uploads/**, not by public/: in a production build .output/public is only a snapshot of the build, so runtime files there are not served. Point UPLOADS_DIR at a persistent volume (see the compose files).
  • POST /api/uploads/images and /api/uploads/documents require auth, cap files at 32MB and only accept an allowlist of mimetypes (no SVG).
  • To move base64 images already stored in the database into files: node scripts/migrate-base64-images.mjs (--dry-run by default, --apply to write).

Documentation

Development Notes

  • Uses Vue 3 Composition API with <script setup>
  • PrimeVue components replace Bootstrap-Vue
  • Pinia stores replace Vuex
  • TypeScript enabled with strict mode