diff --git a/README.md b/README.md new file mode 100644 index 0000000000000000000000000000000000000000..fb56b84183b65c47aaa403d37257a4f7f3b3658d --- /dev/null +++ b/README.md @@ -0,0 +1,118 @@ +# Ripperdoc Shop - Backend +--- +## Instruções de instalação + +- Instale node e npm. Recomenda-se fortemente utilizar [nvm](https://github.com/nvm-sh/nvm). +- Habilite pnpm com `corepack enable pnpm`. +- Instale [docker engine](https://docs.docker.com/engine/install/debian/) -- lembre-se de fazer os passos pós-instalação para não precisar digitar `sudo` toda hora. + +## Estrutura de Pastas e Documentos + +```plaintext +|-- docker-compose.yml +|-- drizzle.config.ts +|-- package.json +|-- pnpm-lock.yaml +|-- README.md +|-- src +| |-- db +| | |-- migrations +| | | |-- 0001_flat_captain_america.sql +| | | |-- 0001_happy_tomas.sql +| | | |-- 0002_serious_arclight.sql +| | | |-- 0003_goofy_zodiak.sql +| | | |-- meta +| | | |-- 0001_snapshot.json +| | | |-- 0002_snapshot.json +| | | |-- 0003_snapshot.json +| | | |-- _journal.json +| | |-- index.ts +| | |-- schema.ts +| |-- env.ts +| |-- handlers +| | |-- implants.ts +| | |-- user.ts +| |-- index.ts +| |-- middleware +| | |-- auth.ts +| |-- validators +| |-- implantsValidator.ts +| |-- userValidator.ts +|-- tsconfig.json +``` +### Explicação da Estrutura + +#### Arquivos da Raiz + +- **docker-compose.yml**: Configuração do Docker Compose para gerenciar containers. + +- **drizzle.config.ts**: Arquivo de configuração do Drizzle (ferramenta de migração ou ORM). + +- **package.json**: Contém metadados do projeto e a lista de dependências. + +- **pnpm-lock.yaml**: Lockfile do pnpm para garantir consistência nas versões das dependências. + +- **README.md**: Documentação principal do projeto. + +- **tsconfig.json**: Configuração do TypeScript para o projeto. + + +#### Diretório `src` + +- **db**: Contém arquivos relacionados ao banco de dados. + + - **migrations**: Armazena scripts de migração do banco de dados. + + - **0001_flat_captain_america.sql**: Script de migração. + + - **0001_happy_tomas.sql**: Script de migração. + + - **0002_serious_arclight.sql**: Script de migração. + + - **0003_goofy_zodiak.sql**: Script de migração. + + - **meta**: Contém snapshots e metadados das migrações. + + - **0001_snapshot.json**: Snapshot da migração 0001. + + - **0002_snapshot.json**: Snapshot da migração 0002. + + - **0003_snapshot.json**: Snapshot da migração 0003. + + - **_journal.json**: Registro das migrações. + + - **index.ts**: Arquivo principal de configuração do banco de dados. + + - **schema.ts**: Define o esquema do banco de dados. + +- **env.ts**: Configurações de ambiente. + +- **handlers**: Contém os manipuladores de requisições. + + - **implants.ts**: Lida com requisições relacionadas a implantes. + + - **user.ts**: Lida com requisições relacionadas a usuários. + +- **index.ts**: Arquivo principal da aplicação. + +- **middleware**: Contém middlewares da aplicação. + + - **auth.ts**: Middleware de autenticação. + +- **validators**: Contém validadores de dados. + + - **implantsValidator.ts**: Valida dados de implantes. + + - **userValidator.ts**: Valida dados de usuários. + + +--- + +## Executar +Essa estrutura é típica para projetos Node.js com TypeScript, utilizando Docker para containerização e Drizzle para migrações de banco de dados. O diretório `src` organiza o código-fonte em módulos, como banco de dados, handlers, middlewares e validators, seguindo boas práticas de desenvolvimento. + +Para executar o projeto: +1. Instale as dependências com `pnpm install`. +2. Suba o banco com `docker compose up --build -d`. +3. Execute as migrações do banco de dados com `npx drizzle-kit generate && npx drizzle-kit migrate` na raiz do projeto. +4. Inicie o servidor com `pnpm run dev` \ No newline at end of file