O Curso em Texto é uma plataforma de cursos livres em formato textual, que incentiva a leitura e o aprendizado profundo.
A proposta é resgatar a essência do aprendizado escrito — direto, acessível e fácil de manter — sem depender de vídeos longos, edição complexa ou custos altos de produção.
Acreditamos que toda pessoa tem algo de valioso para ensinar e algo novo para aprender.
Conteúdo
- Stack
- Começando
- Configurando upstream
- Configuração do projeto
- Trabalhando com workspaces
- Design
- Roadmap
- Comunidade
- Contribuindo
- Next.js
- Node.js
- TypeScript
- Fastify
- Drizzle ORM
- PostgreSQL
- Docker
- Turborepo
- Tailwind CSS
- Storybook
- Vitest
- Zod
- Swagger
- Scalar
-
Faça o fork no GitHub:
- Clique no botão "Fork" no canto superior direito
- Selecione sua conta para criar o fork
-
Clone seu fork localmente:
git clone https://github.com/SEU_USUARIO/curso-em-texto.git cd curso-em-texto
-
Adicione o repositório original como upstream:
git remote add upstream https://github.com/union-developers-group/curso-em-texto.git
-
Verifique os remotes configurados:
git remote -v
- Node.js >= 22
- Docker
Baixe e configure o Docker conforme seu sistema operacional.
Copie o arquivo .env.example e renomeie para .env no diretório apps/backend/ e adicione o seguinte valores nas variáveis:
# apps/backend/.env
POSTGRES_USER="admin"
POSTGRES_PASSWORD="admin"
POSTGRES_DB="curso-em-texto"
DATABASE_URL="postgresql://admin:admin@localhost:5432/curso-em-texto?schema=public"# Instalar todas as dependências do monorepo
npm installnpm run dockernpm run --workspace=backend db:migratenpm run devEsse comando vai iniciar tanto o frontend como o backend do projeto utilizndo o Turborepo.
- O backend estará rodando em http://localhost:8000/docs
- O frontend estará rodando em http://localhost:3000
- Faça download do Insomnia
- Faça uma requisição
Postno Insomnia para a URLhttp://localhost:8000/api/example/create, conforme a imagem abaixo
Tip
Se tudo estiver certo, você deve receber status 201.
Este projeto usa npm workspaces para gerenciar o monorepo.
# Iniciar apenas o backend
npm run dev --workspace=backend
# Iniciar apenas o frontend
npm run dev --workspace=frontend# Instala o axios apenas no backend
npm i axios --workspace=backend
# Instala o axios apenas no frontend
npm i axios --workspace=frontend
Caution
Os componentes devem ser desenvolvidos utilizando o ambiente do Storybook.
- Rode o comando
npm run storybook --workspace=frontend - Acesse http://localhost:6006
Backend:
# Desenvolvimento
npm run dev --workspace=backend
# Banco de dados
npm run db:studio --workspace=backend # Interface web do Drizzle
npm run db:generate --workspace=backend # Gerar migrações
npm run db:migrate --workspace=backend # Executar migrações
# Testes
npm run test --workspace=backend # Roda todos os testes
npm run test:watch --workspace=backend # Roda os testes em modo watchFrontend:
# Desenvolvimento
npm run dev --workspace=frontend
# Inicia o ambiente de desenvolvimento do Storybook
npm run storybook --workspace=frontend
# Testes
npm run test --workspace=frontend # Roda todos os testes unitários
npm run test:watch --workspace=frontend # Roda os testes em modo watchVocê pode visualizar o layout do projeto, clicando aqui.
- Briefing
- Desk Research
- Matriz CSD
- Benchmarking
- Personas
- Jornada do usuário
- Pesquisa com possíveis usuários
- Sitemap
- User flow
- Mapa de funcionalidades
-
- Cadastro e login de usuários.
- Integração com OAuth (Google e GitHub).
- Rules.
-
- CRUD de cursos (título, descrição, tags).
- Editor de conteúdo em texto.
- Organização em capítulos e lições.
-
Perfil de usuário
- Informações básicas (nome, bio, redes sociais).
- Avatar do usuário.
-
Sistema de curadoria de cursos
- Aprovação e bloqueio de cursos.
- Destaque de cursos recomendados.
-
Sistema de denúncias
- Denúncia de conteúdo inadequado.
- Revisão de denúncias pela equipe.
-
Sistema de anotações
- Usuário pode criar notas pessoais dentro das lições.
-
Sistema de favoritos
- Salvar cursos/lessons para ver depois.
-
Busca avançada
- Busca por cursos, lições e autores.
-
Gamificação
- Sistema de pontos/reputação para autores.
- Badges para contribuidores ativos.
-
Sistema de recompensa para criadores de cursos
- Troca de pontos por recompensas.
-
Comentários e feedback
- Espaço de comentários em cursos e lições.
- Votação em comentários (upvote/downvote).
Faça parte da nossa comunidade no Discord.
Quer nos ajudar? Clique aqui e saiba como começar.