in.orbit

App para gerenciamento de metas

Stars
0
Committers
1

Aplicação web full-stack para gerenciamento de metas pessoais desenvolvido durante a NLW Pocket Javascript (evento promovido pela Rocketseat)

Server

O back-end da aplicação foi construído em Typescript + Node.js, utilizando PostgreSQL como banco de dados. Para mapeamento das entidades e gerenciamento de migrations foi utilizado o Drizzle ORM. Para uma melhor organização das consultas ao banco de dados, foi utilizado o conceito de Common Table Expressions (CTE) para buscar informações de resumo das metas de um usuário.

Web

Já no front-end da aplicação, foi utilizado Typescript + React.js. Para estilização da aplicação foi utilizada a biblioteca TailwindCSS. Boa parte dos componentes usam de componentes prontos da biblioteca RadixUI, permitindo ter componentes de fácil estilização e acessibilidade melhorada. Além disso, foi utilizado React Query para consultas ao back-end e React Hook Forms para gerenciamento do formulário de criação de metas.

Instalação

Para iniciar a aplicação, você precisará ter instalado:

Agora basta clonar este repositório e instalar suas dependências. Para isso acesse cada uma das pastas (server e web) e rode o comando npm install ou simplesmente npm i.

Dentro da pasta server, também será necessário criar um arquivo que guardará as variáveis ambiente. Para isso, crie um arquivo chamado .env, insira as seguintes propriedades e preencha o conteúdo delas conforme preferir:

DATABASE_URL=
POSTGRES_USER=
POSTGRES_PASSWORD=
POSTGRES_DB=

Para subir o banco, você precisará estar no diretório server e utilizar o comando docker compose up -d. Dessa forma, o Docker irá baixar a imagem do banco e executá-la em background, graças à flag -d.

Depois disso, basta rodar o comando npm run dev nas pastas server e web e a aplicação estará pronta para ser utilizada.

Screenshots