Skip to content

PHCavalcante/Tamarind

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

146 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tamarind

**Uma aplicação moderna de gerenciamento de tarefas construída com arquitetura de monorepo**

TypeScript Next.js Express MongoDB Turborepo

📋 Sobre o Projeto

Tamarind é uma aplicação completa de produtividade que permite gerenciar tarefas, notas, listas e rotinas diárias. Construída com uma arquitetura moderna de monorepo, oferece uma experiência de usuário fluida e intuitiva com sincronização em tempo real.

✨ Principais Funcionalidades

  • Gerenciamento de Tarefas - Crie, edite e organize suas tarefas com facilidade
  • 📝 Notas Ricas - Editor de texto formatado para suas anotações
  • 📋 Listas Personalizadas - Organize tarefas em listas customizadas
  • 🔄 Rotinas Diárias - Acompanhe e gerencie suas rotinas com reset automático
  • 📊 Visualização Kanban - Visualize suas tarefas em formato de quadro Kanban
  • 🎨 Interface Moderna - Design responsivo com suporte a tema claro/escuro
  • 🔐 Autenticação Segura - Integração com Clerk para autenticação robusta
  • ⏱️ Pomodoro Timer - Técnica Pomodoro integrada para melhor produtividade

🏗️ Arquitetura

Este projeto utiliza uma arquitetura de monorepo gerenciada pelo Turborepo, permitindo compartilhamento de código e configurações entre os diferentes pacotes e aplicações.

Tamarind/
├── apps/
│   ├── tamarind-api/      # API REST backend
│   └── tamarind-web/      # Aplicação Next.js frontend
├── packages/
│   ├── eslint-config/      # Configurações compartilhadas do ESLint
│   ├── typescript-config/  # Configurações TypeScript compartilhadas
│   └── ui/                 # Componentes UI compartilhados
└── turbo.json              # Configuração do Turborepo

🛠️ Stack Tecnológica

Frontend (tamarind-web)

  • Next.js 15 - Framework React com App Router
  • React 19 - Biblioteca UI
  • TypeScript - Tipagem estática
  • Tailwind CSS - Estilização utilitária
  • Clerk - Autenticação e gerenciamento de usuários
  • Draft.js - Editor de texto rico
  • Axios - Cliente HTTP

Backend (tamarind-api)

  • Express.js - Framework web Node.js
  • MongoDB - Banco de dados NoSQL
  • Clerk Express - Middleware de autenticação
  • Node Cron - Agendamento de tarefas (reset de rotinas)
  • CORS - Configuração de políticas de origem cruzada

DevOps & Ferramentas

  • Turborepo - Build system e cache para monorepo
  • pnpm - Gerenciador de pacotes
  • ESLint - Linter de código
  • Prettier - Formatador de código
  • TypeScript - Verificação de tipos

🚀 Começando

Pré-requisitos

  • Node.js >= 18.0.0
  • pnpm >= 9.0.0
  • MongoDB (local ou cluster remoto)
  • Conta no Clerk para autenticação

Instalação

  1. Clone o repositório

    git clone https://github.com/PHCavalcante/Tamarind.git
    cd Tamarind
  2. Instale as dependências

    pnpm install
  3. Configure as variáveis de ambiente

    Crie um arquivo .env na raiz do projeto e em cada app conforme necessário:

    Backend (apps/tamarind-api/.env):

    STRING_CONNECTION=mongodb://localhost:27017/todoDB
    CORS_ORIGIN=http://localhost:3001
    CLERK_SECRET_KEY=your_clerk_secret_key

    Frontend (apps/tamarind-web/.env.local):

    NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=your_clerk_publishable_key
    CLERK_SECRET_KEY=your_clerk_secret_key
    NEXT_PUBLIC_API_URL=http://localhost:3000
  4. Execute o projeto em modo desenvolvimento

    pnpm dev

    Isso iniciará:

    • Frontend em http://localhost:3001
    • Backend em http://localhost:3000 (API)

📜 Scripts Disponíveis

No diretório raiz, você pode executar:

Comando Descrição
pnpm dev Inicia todos os apps em modo desenvolvimento
pnpm build Constrói todos os apps e pacotes
pnpm lint Executa o linter em todos os pacotes
pnpm format Formata o código com Prettier
pnpm check-types Verifica tipos TypeScript em todo o projeto

📦 Estrutura do Monorepo

Apps

  • tamarind-web - Aplicação frontend Next.js

    • Interface de usuário completa
    • Gerenciamento de estado com Context API
    • Componentes reutilizáveis
  • tamarind-api - API REST Express.js

    • Endpoints para tarefas, notas, listas e rotinas
    • Scheduler para reset automático de rotinas
    • Integração com MongoDB

🤝 Contribuindo

Contribuições são bem-vindas! Por favor:

  1. Faça um fork do projeto
  2. Crie uma branch para sua feature (git checkout -b feature/AmazingFeature)
  3. Commit suas mudanças (git commit -m 'Add some AmazingFeature')
  4. Push para a branch (git push origin feature/AmazingFeature)
  5. Abra um Pull Request

📄 Licença

Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.


Feito com ❤️ por PHCavalcante

⬆ Voltar ao topo