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.
- Node.js: 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: 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: 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: 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: 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: 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.
- O organizador deve poder cadastrar um novo evento;
- O organizador deve poder visualizar dados de um evento;
- O organizador deve poder visualizar a lista de participantes;
- O participante deve poder se inscrever em um evento;
- O participante deve poder visualizar seu crachá de inscrição.
- O participante deve poder realizar check-in no evento;
- O participante só pode se inscrever em um evento uma única vez;
- O participante só pode se inscrever em eventos com vagas disponíveis;
- O participante só pode realizar check-in uma única vez;
- O check-in no evento será realizado através de um QRCode.
- 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
- Instale as dependências:
npm install
- Renomeie o arquivo
.env.example
para.env
e preencha as informações:
DATABASE_URL=""
- Execute as migrações:
npm run migrate
Para rodar a aplicação em modo produção:
- Build na aplicação:
npm run build
- Inicie a aplicação:
npm run start
Para rodar a aplicação em modo desenvolvimento:
npm run dev
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.
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.