Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/gumiranda/crazystacknodejs
Módulo de NodeJs da CrazyStack! O bootcamp do DevDoido
https://github.com/gumiranda/crazystacknodejs
architecture bootcamp clean crazy crazystack dev devdoido doido fastify javascript nestjs nodejs stack tdd typescript
Last synced: 3 months ago
JSON representation
Módulo de NodeJs da CrazyStack! O bootcamp do DevDoido
- Host: GitHub
- URL: https://github.com/gumiranda/crazystacknodejs
- Owner: gumiranda
- Created: 2022-03-26T14:02:52.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2024-05-22T21:42:54.000Z (8 months ago)
- Last Synced: 2024-05-22T21:43:44.995Z (8 months ago)
- Topics: architecture, bootcamp, clean, crazy, crazystack, dev, devdoido, doido, fastify, javascript, nestjs, nodejs, stack, tdd, typescript
- Language: TypeScript
- Homepage: https://hotmart.com/pt-br/marketplace/produtos/aprenda-nodejs-e-react-native-do-zero-ao-infinito/P34477060O
- Size: 1.31 MB
- Stars: 18
- Watchers: 3
- Forks: 3
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# CrazyStack Typescript Node.js - Sistema de Agendamentos Online 🚀
Este repositório faz parte do bootcamp **CrazyStack** do **DevDoido** e implementa uma API completa para gerenciamento de agendamentos online utilizando **Node.js**. O projeto foi desenvolvido com foco em escalabilidade, segurança e alta performance.
## Sumário 📚
- [Tecnologias Utilizadas](#tecnologias-utilizadas)
- [Requisitos](#requisitos)
- [Instalação](#instalação)
- [Configuração](#configuração)
- [Comandos Disponíveis](#comandos-disponíveis)
- [Scripts de Teste](#scripts-de-teste)
- [Contribuição](#contribuição)
- [Licença](#licença)## Tecnologias Utilizadas 🛠️
Este projeto utiliza as seguintes tecnologias:
- **Node.js** 🟢 para a criação do servidor.
- **Fastify** ⚡ como framework de servidor web, com suporte a WebSockets.
- **MongoDB** 🐱💻 para banco de dados, usando MongoDB Memory Server para testes.
- **KafkaJS** 🐻 para integração com o Apache Kafka.
- **Redis** 🧊 (via IORedis) para gerenciamento de cache.
- **JWT (JsonWebToken)** 🔐 para autenticação e autorização.
- **Axios** 📦 para requisições HTTP.
- **Stripe** 💳, **Woovi (PIX)** 💸 e **Pagar.me** 💵 para integração com pagamentos.## Requisitos ✅
- Node.js v18+
- MongoDB
- Redis
- Kafka (opcional, se houver necessidade de integração com filas)## Instalação 🛠️
1. Clone o repositório:
```bash
git clone https://github.com/gumiranda/CrazyStackNodeJs.git
```2. Acesse a pasta do projeto:
```bash
cd CrazyStackNodeJs
```3. Instale as dependências:
```bash
yarn
```4. Compile o projeto (caso esteja usando TypeScript):
```bash
yarn build
```5. Rode o projeto:
```bash
yarn start
```## Configuração ⚙️
Crie um arquivo `.env` na raiz do projeto e defina as variáveis de ambiente necessárias. Aqui está um exemplo de configuração:
```env
# Configurações do MongoDB
MONGO_URL=mongodb+srv://seuusuario:[email protected]/nomedobanco?retryWrites=true&w=majority
MONGO_URL_PROD=mongodb+srv://seuusuario:[email protected]/nomedobanco?retryWrites=true&w=majorityNODE_ENV=production
JWT_SECRET=dsdsdsdsdsdsd
JWT_REFRESH_SECRET=dsdsdsdsdsdsdREDIS_PORT=NUMERO_DA_PORTA
REDIS_URL=HOST_DO_REDIS
REDIS_PASSWORD=SENHA_DO_REDISGOOGLE_MAPS_API_KEY=SUAGOOGLEMAPSAPIKEY
WOOVI_WEBHOOK_SECRET=SUAWOOVIWEBHOOKSECRET
WOOVI_KEY=SUAWOOVIKEYPGHOST='ep-black-water-a5s6ziyz.us-east-2.aws.neon.tech'
PGDATABASE='neondb'
PGUSER='neondb_owner'
PGPASSWORD='nvi9XBpaRVQ0'
ENDPOINT_ID='ep-black-water-a5s6ziyz'
PGPORT=5432FUSORARIOBR="production"
# postgres ou mongodb
DATABASE="postgres"UPLOAD_PROVIDER="cloudflare_r2"
CLOUDFLARE_R2_ACCESS_KEY_ID=SEU_ACCESS_KEY_DA_CLOUDFLARE
CLOUDFLARE_R2_ACCOUNT_ID=SEU_ACCOUNT_ID_DA_CLOUDFLARE
CLOUDFLARE_R2_BUCKET_NAME=crazystack
CLOUDFLARE_R2_SECRET_ACCESS_KEY=SEU_ACCESS_SECRET_DA_CLOUDFLARE#rabbitmq ou kafka
MESSAGE_BROKER=rabbitmq
RABBITMQ_URL=SUA_URL_DO_RABBITMQPORT=3333
```## Comandos Disponíveis 🖥️
- `yarn start`: Inicia a API em produção.
- `yarn build`: Remove a pasta `dist` e compila o TypeScript.
- `yarn test`: Executa os testes com o Jest.
- `yarn format`: Formata o código utilizando Prettier.
- `yarn generate`: Executa o Plop para gerar componentes ou rotas automaticamente.## Scripts de Teste 🧪
- `yarn test:db`: Testa a integração com o banco de dados.
- `yarn test:all`: Executa todos os testes.
- `yarn test:spec`: Testa arquivos específicos.
- `yarn test:t`: Testes personalizados.
- `yarn test:v`: Testes com output detalhado.## Contribuição 🤝
Contribuições são bem-vindas! Se você deseja melhorar este projeto, sinta-se à vontade para abrir uma *issue* ou enviar um *pull request*.
## Licença 📜
Este projeto está licenciado sob a Licença MIT. Consulte o arquivo [LICENSE](./LICENSE) para mais detalhes.
```Adicionei emojis para tornar o README mais visualmente atraente e destaquei as bibliotecas e tecnologias utilizadas. Sinta-se à vontade para modificar conforme necessário!