Skip to content

Commit 8a850eb

Browse files
committed
feat: Atualizar README.md com informações sobre o projeto CrazyStack Typescript Node.js - Sistema de Agendamentos Online 🚀
1 parent f5d0329 commit 8a850eb

1 file changed

Lines changed: 161 additions & 3 deletions

File tree

README.md

Lines changed: 161 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,162 @@
1-
# CrazyStack NodeJs
21

3-
Aqui é o repositório oficial do Bootcamp do DevDoido. Cada aula terá sua branch correspondente para poder seguir o curso.
4-
NÃO SE ESQUEÇA DE CRIAR E CONFIGURAR O ARQUIVO .ENV
2+
# CrazyStack Typescript Node.js - Sistema de Agendamentos Online 🚀
3+
4+
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.
5+
6+
## Sumário 📚
7+
8+
- [Tecnologias Utilizadas](#tecnologias-utilizadas)
9+
- [Requisitos](#requisitos)
10+
- [Instalação](#instalação)
11+
- [Configuração](#configuração)
12+
- [Comandos Disponíveis](#comandos-disponíveis)
13+
- [Scripts de Teste](#scripts-de-teste)
14+
- [Contribuição](#contribuição)
15+
- [Licença](#licença)
16+
17+
## Tecnologias Utilizadas 🛠️
18+
19+
Este projeto utiliza as seguintes tecnologias:
20+
21+
- **Node.js** 🟢 para a criação do servidor.
22+
- **Fastify** ⚡ como framework de servidor web, com suporte a WebSockets.
23+
- **MongoDB** 🐱‍💻 para banco de dados, usando MongoDB Memory Server para testes.
24+
- **KafkaJS** 🐻 para integração com o Apache Kafka.
25+
- **Redis** 🧊 (via IORedis) para gerenciamento de cache.
26+
- **JWT (JsonWebToken)** 🔐 para autenticação e autorização.
27+
- **Axios** 📦 para requisições HTTP.
28+
- **Stripe** 💳, **Woovi (PIX)** 💸 e **Pagar.me** 💵 para integração com pagamentos.
29+
30+
## Requisitos ✅
31+
32+
- Node.js v18+
33+
- MongoDB
34+
- Redis
35+
- Kafka (opcional, se houver necessidade de integração com filas)
36+
37+
## Instalação 🛠️
38+
39+
1. Clone o repositório:
40+
41+
```bash
42+
git clone https://github.com/gumiranda/CrazyStackNodeJs.git
43+
```
44+
45+
2. Acesse a pasta do projeto:
46+
47+
```bash
48+
cd CrazyStackNodeJs
49+
```
50+
51+
3. Instale as dependências:
52+
53+
```bash
54+
yarn
55+
```
56+
57+
4. Compile o projeto (caso esteja usando TypeScript):
58+
59+
```bash
60+
yarn build
61+
```
62+
63+
5. Rode o projeto:
64+
65+
```bash
66+
yarn start
67+
```
68+
69+
## Configuração ⚙️
70+
71+
Crie um arquivo `.env` na raiz do projeto e defina as variáveis de ambiente necessárias. Aqui está um exemplo de configuração:
72+
73+
```env
74+
# Configurações do MongoDB
75+
MONGO_URL=mongodb+srv://seuusuario:suasenha@clusterseilaoqdomongo.mongodb.net/nomedobanco?retryWrites=true&w=majority
76+
MONGO_URL_PROD=mongodb+srv://seuusuario:suasenha@clusterseilaoqdomongo.mongodb.net/nomedobanco?retryWrites=true&w=majority
77+
78+
# Ambiente de produção
79+
NODE_ENV=production
80+
81+
# Segurança e autenticação
82+
JWT_SECRET=hdfshfhf8ds8fds8fds8f8
83+
84+
# Configurações do Redis
85+
REDIS_PORT=40043
86+
REDIS_URL=us1-active-EXAMPLE-40043.upstash.io
87+
REDIS_PASSWORD=YOUR_PASSWORD
88+
89+
# API do Google Maps
90+
GOOGLE_MAPS_API_KEY=YOURGOOGLEMAPSKEY
91+
92+
# Kafka
93+
KAFKAJS_NO_PARTITIONER_WARNING=1
94+
KAFKA_USERNAME=
95+
KAFKA_PASSWORD=
96+
KAFKA_HOST=
97+
KAFKA_CLIENT_ID=
98+
99+
# Gateways de pagamento
100+
WOOVI_KEY=YOUR_WOOVI_KEY
101+
PAGARME_SECRET_KEY=YOUR_PAGARME_SECRET_KEY
102+
PAGARME_PUBLIC_KEY=YOUR_PAGARME_PUBLIC_KEY
103+
PUBLIC_STRIPE_KEY=YOUR_STRIPE_PUBLIC_KEY
104+
SECRECT_STRIPE_KEY=YOUR_STRIPE_SECRET_KEY
105+
106+
# Banco de dados Postgres (Neon)
107+
PGHOST='ep-black-water-a5s6ziyz.us-east-2.aws.neon.tech'
108+
PGDATABASE='neondb'
109+
PGUSER='neondb_owner'
110+
PGPASSWORD='nvi9XBpaRVQ0'
111+
ENDPOINT_ID='ep-black-water-a5s6ziyz'
112+
PGPORT=5432
113+
FUSORARIOBR="production"
114+
DATABASE="postgres"
115+
116+
# Provedores de armazenamento
117+
UPLOAD_PROVIDER=cloudflare_r2
118+
CLOUDFLARE_R2_ACCOUNT_ID=your_account_id
119+
CLOUDFLARE_R2_ACCESS_KEY_ID=your_access_key_id
120+
CLOUDFLARE_R2_SECRET_ACCESS_KEY=your_secret_access_key
121+
CLOUDFLARE_R2_BUCKET_NAME=your_bucket_name
122+
123+
S3_ACCESS_KEY_ID=your_s3_access_key_id
124+
S3_SECRET_ACCESS_KEY=your_s3_secret_access_key
125+
S3_BUCKET_NAME=your_s3_bucket_name
126+
S3_REGION=your_s3_region
127+
128+
GCS_PROJECT_ID=your_gcs_project_id
129+
GCS_BUCKET_NAME=your_gcs_bucket_name
130+
GCS_KEY_FILENAME=path_to_your_gcs_keyfile
131+
132+
AZURE_STORAGE_CONNECTION_STRING=your_azure_connection_string
133+
AZURE_CONTAINER_NAME=your_azure_container_name
134+
```
135+
136+
137+
## Comandos Disponíveis 🖥️
138+
139+
- `yarn start`: Inicia a API em produção.
140+
- `yarn build`: Remove a pasta `dist` e compila o TypeScript.
141+
- `yarn test`: Executa os testes com o Jest.
142+
- `yarn format`: Formata o código utilizando Prettier.
143+
- `yarn generate`: Executa o Plop para gerar componentes ou rotas automaticamente.
144+
145+
## Scripts de Teste 🧪
146+
147+
- `yarn test:db`: Testa a integração com o banco de dados.
148+
- `yarn test:all`: Executa todos os testes.
149+
- `yarn test:spec`: Testa arquivos específicos.
150+
- `yarn test:t`: Testes personalizados.
151+
- `yarn test:v`: Testes com output detalhado.
152+
153+
## Contribuição 🤝
154+
155+
Contribuições são bem-vindas! Se você deseja melhorar este projeto, sinta-se à vontade para abrir uma *issue* ou enviar um *pull request*.
156+
157+
## Licença 📜
158+
159+
Este projeto está licenciado sob a Licença MIT. Consulte o arquivo [LICENSE](./LICENSE) para mais detalhes.
160+
```
161+
162+
Adicionei emojis para tornar o README mais visualmente atraente e destaquei as bibliotecas e tecnologias utilizadas. Sinta-se à vontade para modificar conforme necessário!

0 commit comments

Comments
 (0)