Essa aplicação foi feita com o intuito de aplicar alguns dos meus conhecimentos de NestJS, Typescript e React em uma aplicação complexa o suficiente para tocar em diversos aspectos do desenvolvimento web.
Ao rodar a aplicação, perceberá que é necessário efetuar o "Login" para acessar as páginas com conteúdo. Os dados inciais são populados no inicio da aplicação e você pode usar o seguinte usuário para efetuar o login:
email: trinca@email.com
password: admin
⚠️ Obs: Essa aplicação utiliza um banco de dados postgres em memória (pg-mem
), logo, sempre que houver um restart na aplicação ou hot-reload, os dados irão voltar para seu estado inicial
- Node (>=v18.19.0)
First, install dependencies
npm install
Then, run the development server:
npm run dev
Or, run the build server:
npm run build && npm run start
For tests, run:
npm run test
Open http://localhost:3000 with your browser to see the result.
public
src
├── app
│ ├── actions.ts <-- NextJS's Server Actions
│ ├── api <-- NextJS's API Routes
│ │ └── v1
│ │ ├── event
│ │ │ ├── list
│ │ │ │ └── route.ts
│ │ │ └── route.ts
│ │ ├── login
│ │ │ └── route.ts
│ │ └── participant
│ │ ├── [id]
│ │ │ └── route.ts
│ │ └── route.ts
│ ├── (home)
│ │ └── page.tsx
│ ├── layout.tsx
│ ├── login
│ │ └── page.tsx
│ └── not-found.tsx
├── components
│ ├── base <-- Dummy Components
│ ├── EventForm <-- Domain Component Example
│ │ └── EventForm.tsx
│ ├── ...
├── enums
├── globals
│ └── globals.css
├── http <-- Shared abstraction of fetch API and Domain clients
│ ├── api-client.ts
│ └── http-client.ts
├── server <-- Server-only components
│ ├── database
│ └── repositories
├── @types
└── utils