Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/vitinho163/nlw-unite---pass-in
Aplicação de gestão de participantes em eventos presenciais.
https://github.com/vitinho163/nlw-unite---pass-in
fastify nodejs prisma-orm swagger zod-validation
Last synced: about 17 hours ago
JSON representation
Aplicação de gestão de participantes em eventos presenciais.
- Host: GitHub
- URL: https://github.com/vitinho163/nlw-unite---pass-in
- Owner: Vitinho163
- Created: 2024-04-02T00:17:45.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2024-04-05T18:02:36.000Z (10 months ago)
- Last Synced: 2024-12-18T11:17:39.831Z (about 2 months ago)
- Topics: fastify, nodejs, prisma-orm, swagger, zod-validation
- Language: TypeScript
- Homepage: https://nlw-unite-pass-in.onrender.com/docs
- Size: 126 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# pass.in
O pass.in é uma aplicação de **gestão de participantes em eventos presenciais**.
A ferramente permite que o organizador cadastre um evento e abra uma página pública de inscrição.
Os participantes incritos podem emitir uma credencial para check-in no dia do evento.
O sistema fará um scan de credencial de participante para permitir a entrada do evento.
## 🚀 Tecnologias Utilizadas
- **[Node.js](https://nodejs.org/)**: Ambiente de execução JavaScript construido no motor JavaScript V8 do Chrome.
- **[Fastify]()**: Um framework web extremamente rápido e eficiente para Node.js. Ele foi projetado para fornecer alto desempenho com baixo consumo de recursos, adequado para desenvolvimento de APIs e serviços web.
- **[Fastify-Swagger](https://github.com/fastify/fastify-swagger)**: Um plugin Fastify que gera automaticamente a especificação OpenAPI (conhecida como Swagger) com base nos esquemas de rota e parâmetros fornecidos.
- **[Fastify-Swagger-UI](https://github.com/fastify/fastify-swagger-ui)**: Um pacote independente que fornece uma interface de usuário para visualizar e interagir com APIs definidas pelo Swagger. Este plugin é projetado especificamente para integrar o Swagger UI com o Fastify.
- **[@Fastify/cors](https://github.com/fastify/fastify-cors)**: Um plugin para Fastify que permite configurar políticas de Cross-Origin Resource Sharing (CORS) para controlar o acesso a recursos de origens diferentes.
- **[Prisma](https://www.prisma.io/)**: Uma biblioteca de banco de dados ORM (Object-Relational Mapping) para Node.js e TypeScript. Ele fornece uma interface de programação de aplicativo (API) para interagir com um banco de dados usando o Prisma Schema.
- **[Zod](https://zod.dev/)**: Uma biblioteca de validação de esquemas altamente eficiente e fácil de usar para JavaScript e TypeScript. Ele permite definir e validar esquemas de forma declarativa, ajudando a garantir a integridade dos dados em seu aplicativo.## Requisitos
### Requisitos funcionais
- [x] O organizador deve poder cadastrar um novo evento;
- [x] O organizador deve poder visualizar dados de um evento;
- [x] O organizador deve poder visualizar a lista de participantes;
- [x] O participante deve poder se inscrever em um evento;
- [x] O participante deve poder visualizar seu crachá de inscrição.
- [x] O participante deve poder realizar check-in no evento;### Regras de negócio
- [x] O participante só pode se inscrever em um evento uma única vez;
- [x] O participante só pode se inscrever em eventos com vagas disponíveis;
- [x] O participante só pode realizar check-in uma única vez;### Requisitos não-funcionais
- [x] O check-in no evento será realizado através de um QRCode.
## 🛠️ Instalação
1. Clone o repositório ou faça o download e extraia o arquivo zip do repositório.
```
git clone https://github.com/Vitinho163/NLW-Unite---Pass-In.git
```2. Instale as dependências:
```
npm install
```3. Renomeie o arquivo `.env.example` para `.env` e preencha as informações:
```
DATABASE_URL=""
```4. Execute as migrações:
```
npm run migrate
```## Iniciando aplicação
Para rodar a aplicação em modo produção:
1. Build na aplicação:
```
npm run build
```2. Inicie a aplicação:
```
npm run start
```Para rodar a aplicação em modo desenvolvimento:
```
npm run dev
```## Diagrama ERD
## 💻 Deploy
Esta API foi hospedada diretamente no Render.
O deployment pode ser acessado no seguinte endereço:
```
https://nlw-unite-pass-in.onrender.com/
```>Nota: Como está hospedado em um serviço gratuito, a aplicação 'hiberna' após 15 minutos de inatividade. Se você estiver tentando acessar o site e o BackEnd não responder, basta aguardar, pois ele estará 'inicializando' os serviços.
## Documentação da Rotas
A documentação de todas as rotas está disponivel em:
```
http://localhost:3333/docs
```>Nota: Esta aplicação foi desenvolvida usando a versão Node.js v20.12. Em caso de problemas, tente atualizar o Node.js para a versão mais recente.