Skip to content

joschonarth/devstage-server

Repository files navigation

devstage

📨 devstage API

Indique, convide e suba no ranking.

last-commit repo-top-language repo-language-count

📃 Sobre  •   🛠️ Tecnologias  •   ✨ Funcionalidades  •   🚀 Como rodar  •   📖 Documentação


📃 Sobre

O devstage é uma aplicação web de sistema de indicações e convites para eventos, e este repositório contém a API REST que a alimenta. Por meio dela é possível cadastrar participantes em eventos, gerar links únicos de convite, registrar acessos e inscrições originadas por cada link e calcular o ranking global de indicações em tempo real. Além disso, a API conta com um agente de inteligência artificial capaz de consultar métricas do evento diretamente no PostgreSQL e Redis e gerar respostas inteligentes sobre desempenho, acessos e conversões de convites. O backend é construído com Node.js, Fastify e Drizzle ORM.


🛠️ Tecnologias

  • 🟩 Node.js — Ambiente de execução JavaScript server-side.
  • Fastify — Framework web focado em performance e baixo overhead.
  • 🟦 TypeScript — Tipagem estática e segurança em tempo de desenvolvimento.
  • 🗃️ Drizzle ORM — ORM moderno e type-safe para TypeScript.
  • 🐘 PostgreSQL — Banco de dados relacional para persistência dos dados.
  • 🔴 Redis — Armazenamento em memória para ranking e contagem de acessos em tempo real.
  • 🐳 Docker — Containerização do banco de dados para ambiente reproduzível.
  • 📖 Swagger — Documentação interativa da API via @fastify/swagger.
  • 🛡️ Zod — Validação e parsing de schemas com inferência de tipos.
  • 🔍 Biome — Linting e formatação de código de alta performance.
  • 🤖 Vercel AI SDK — Criação de agente de IA com tool calling para consulta de métricas do evento.

✨ Funcionalidades

  • 📝 Inscrição de participantes em eventos
  • 🔗 Geração de link único de convite por participante
  • 👥 Registro de inscrições originadas por links de convite
  • 📊 Contagem de acessos ao link de convite
  • 🎯 Contagem de inscrições geradas pelo link
  • 🏆 Posição do participante no ranking de indicações
  • 🌍 Ranking global de indicações em tempo real
  • 🤖 Agente de IA para consulta de métricas do evento
  • 🧠 Geração de respostas inteligentes com base em dados do PostgreSQL e Redis
  • 🛡️ Validação de dados com Zod
  • 📖 Documentação interativa da API com Swagger

🚀 Como rodar

📋 Pré-requisitos

🔧 Instalação

  1. Clone o repositório:

    git clone https://github.com/joschonarth/devstage-server.git
  2. Acesse a pasta do projeto:

    cd devstage-server
  3. Instale as dependências:

    npm install
  4. Configure as variáveis de ambiente copiando o arquivo de exemplo:

    cp .env.example .env

🐳 Banco de dados

Suba os containers do PostgreSQL e do Redis com Docker:

docker compose up -d

Execute as migrations para criar as tabelas:

npx drizzle-kit migrate

▶️ Execução

Inicia o servidor em modo de desenvolvimento:

npm run dev

O servidor estará disponível em http://localhost:3333.


🤖 IA & Analytics

O projeto conta com um agente de inteligência artificial desenvolvido com o Vercel AI SDK, utilizando tool calling para acessar dados do sistema.

Esse agente é capaz de:

  • Consultar métricas de convites no PostgreSQL
  • Obter contagem de acessos armazenada no Redis
  • Gerar respostas inteligentes sobre o desempenho de eventos e participantes

📖 Documentação da API

Com o servidor rodando, acesse a documentação interativa gerada pelo Swagger:

http://localhost:3333/docs


⭐ Apoie este Projeto

Se curtiu o projeto, deixe uma ⭐ aqui no GitHub — isso ajuda muito!


Feito com ♥ por João Otávio Schonarth

LinkedIn Gmail

About

📨 RESTful API for devstage, handling event subscriptions, referral links, invite tracking, and real-time ranking, built with Node.js, Fastify, PostgreSQL, Redis, and Drizzle ORM.

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors