{"id":21626793,"url":"https://github.com/iarlen-reis/progress-management","last_synced_at":"2026-04-10T13:31:30.126Z","repository":{"id":224008602,"uuid":"761547359","full_name":"iarlen-reis/Progress-Management","owner":"iarlen-reis","description":"Uma aplicação de gerenciamento de progresso construída com NextJs 14 para compreender as novas funcionalidades e a utilização das server actions.","archived":false,"fork":false,"pushed_at":"2024-02-26T21:06:57.000Z","size":491,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-03T16:31:44.686Z","etag":null,"topics":["docker-compose","next-auth","next14","postgresql","prisma","shadcn-ui","tailwind-css"],"latest_commit_sha":null,"homepage":"https://progress-management.iarlenreis.com.br","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/iarlen-reis.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-02-22T03:08:49.000Z","updated_at":"2024-02-26T06:30:56.000Z","dependencies_parsed_at":"2024-02-23T08:43:50.907Z","dependency_job_id":null,"html_url":"https://github.com/iarlen-reis/Progress-Management","commit_stats":null,"previous_names":["iarlen-reis/progress-management"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/iarlen-reis/Progress-Management","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iarlen-reis%2FProgress-Management","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iarlen-reis%2FProgress-Management/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iarlen-reis%2FProgress-Management/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iarlen-reis%2FProgress-Management/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iarlen-reis","download_url":"https://codeload.github.com/iarlen-reis/Progress-Management/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iarlen-reis%2FProgress-Management/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31645207,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-10T07:40:12.752Z","status":"ssl_error","status_checked_at":"2026-04-10T07:40:11.664Z","response_time":98,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker-compose","next-auth","next14","postgresql","prisma","shadcn-ui","tailwind-css"],"created_at":"2024-11-25T01:14:30.013Z","updated_at":"2026-04-10T13:31:30.102Z","avatar_url":"https://github.com/iarlen-reis.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg src=\"/public/git-hub/home.png\" alt=\"image da pagina inicial da aplicação\"\u003e\n\u003cimg src=\"/public/git-hub/task.png\" alt=\"imagem de uma task da aplicação\"\u003e\n\n# Progress Management\n\nProgress Management é uma aplicação full-stack feita com nextJs 14. Ela é um gerenciador de progresso, onde o usuário pode definir uma tarefa e a medida que for concluido ir relatando o progresso.\n\n\n## Propósito\nNo nextJs 13.4 foram introduzidas as funcionalidades de server actions e server components, a server action foi \"oficializada\" na versão 14 do nextJs.\n\nO propósito da aplicação foi estudar essas novas funcionalidades, cerca de 95% da aplicação foi feita utilizando server components, onde toda estrutura da pagina/componente é construida e hidratada no servidor, sendo enviado uma quantidade baixíssima de javascript para o client (navegador).\n\n# Funcionalidades\n- Autenticação com Github\n- Criar, Atualizar, Vizualizar e Deletar Task.\n- Criar e Deletar entrada da task.\n- Paginação (4 tasks por pagina).\n- Filtar task por nome.\n## Variáveis de Ambiente\n\nPara rodar esse projeto, você vai precisar adicionar as seguintes variáveis de ambiente no seu `\n.env\n`\n\nUrl do banco de postgreSQL:\n\n`DATABASE_URL=` \n\nSecret para o nextJs (qualquer texto aleatorio):\n\n`NEXTAUTH_SECRET=`\n\nGITHUB_ID E GITHUB_SECRET para autentição usando Oauth (next-auth):\n\n`GITHUB_ID=`\n\n`GITHUB_SECRET=`\n\n\n## Melhorias\n\n- Adicionar testes unitários \n- Permitir compartilhar progresso de task com outras pessoas.\n\n\n\n## Stack utilizada\n\n**Back-end:** NextJs 14, Tailwind, Shadcn/ui, Prisma, PostgreSQL, Next-Auth, Zod.\n\n\n## Minhas considerações\nNo meu ponto de vista o NextJs/Vercel ainda tem muito o que melhorar nos server components, existem algumas coisas que me encomodaram bastante durante o desenvolvimento:\n\n- As server actions só podem retornar `Promise\u003cvoid\u003e`, o que impede de fazer validações antes de efeituar qualquer comunicação com o banco de dados.\n\n- Não é possível utilizar as rotas da `api routes` em componentes ou páginas de servidor, por exemplo, se você tem uma api routes `/api/tasks` você não pode utiliza-la em uma página de servidor já que as rotas de api do NextJs não estão disponivel no momento do build. \n\n- Se você chamar uma `api routes` dentro de uma página de servidor localmente na sua máquina, simplesmente funcionará.\n\n- Atualmente na versão NextJs 14.1.0, não é possível realizar testes unitários utilizando jest, existe um próvavel erro de conflito de arquivos.\n\n- Agora existe a possibilidade de revalidar os dados com os hooks `revalidatePath` e `revalidateTag`, acredito que não é a melhor forma para lidar com cache, mas é um bom começo, o `react-query` continua sendo a melhor opção para manipulação de cache.\n\n## Considerações finais\n\nO NextJs/Vercel parecem decididos á adotar o server side render como modelo de desenvolvimento, provavelmente muita coisa será alterada futuramente, principalmente em relação as server actions e api routes.\n\nSe permitirem a utilização de api routes em páginas e componentes de servidor será muito bom para manter tudo organizado, já que JSX e Acesso ao banco de dados no mesmo arquivo torna as coisas muito confusa.\n\nO desenvolvimento da aplicação foi bastante divertido, principalmente com as server actions, mas irei esperar um amadurecimento antes de usar em produção.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiarlen-reis%2Fprogress-management","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fiarlen-reis%2Fprogress-management","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiarlen-reis%2Fprogress-management/lists"}