Este é um projeto de backend utilizando Node.js, TypeScript, Express e Sequelize. Ele inclui a configuração inicial do projeto, modelos básicos e endpoints para manipulação de dados em um banco de dados PostgreSQL.
project-root/
├── src/
│ ├── adapters/
│ │ ├── api/
│ │ │ ├── controllers/
│ │ │ ├── middleware/
│ │ │ ├── routes/
│ │ │ ├── swagger/
│ │ │ │ ├── annotation/
│ │ │ │ └── swaggerOptions.ts
│ │ │ ├── utils/
│ │ ├── persistence/
│ │ │ ├── models/
│ │ │ ├── repositories/
│ │ │ └── services/
│ ├── application.usecases/
│ │ ├── auth/
│ │ ├── token/
│ │ └── user/
│ ├── bootstrap/
│ │ ├── app.ts
│ │ ├── database.ts
│ │ └── passport.ts
│ ├── domain/
│ │ ├── entities/
│ │ └── repositories/
│ ├── shared/
│ │ ├── dto/
│ │ ├── errors/
│ │ ├── types/
│ │ └── utils/
│ └── index.ts
├── .env
├── Dockerfile
├── docker-compose.yml
└── ...
- Node.js (v14 ou superior)
- npm ou yarn (Recomendado v4+, instruções de instalação logo abaixo)
- Banco de dados PostgreSQL
- Docker (apenas para inicialização rápida)
- Docker Compose (apenas para inicialização rápida)
Unix/macOS:
corepack enable && corepack prepare yarn@stable --activate
Subir o projeto com Docker:
git clone https://github.com/thoggs/btc-wallet-backend-express.git && cd btc-wallet-backend-express
docker-compose up -d
Dentro da pasta do projeto, execute o comando abaixo para criar as tabelas no banco de dados e popular.
yarn && npx sequelize-cli db:seed:all
O projeto estará disponível em: http://localhost:8083/api/{endpoint}
Acesse a documentação Swagger em: http://localhost:8083/api-docs
git clone https://github.com/thoggs/btc-wallet-backend-express.git && cd btc-wallet-backend-express
npm install
# ou
yarn install
Crie ou edite o arquivo .env
na raiz do projeto e adicione suas configurações do banco de dados:
# Application configuration
PORT=3000
# Database configuration
DB_NAME=nome_do_banco
DB_USER=usuario_do_banco
DB_PASS=senha_do_banco
DB_HOST=url_do_banco
DB_PORT=porta_do_banco
DB_DIALECT=banco_de_dados (postgres, mysql e etc..)
# JWT configuration
JWT_SECRET=jwt_senha_secreta
JWT_ISSUER=jwt_issuer
JWT_AUDIENCE=jwt_audience
JWT_EXPIRES_IN=jwt_tempo_de_expiracao
Para rodar o projeto em modo de desenvolvimento:
yarn dev
# ou
npm run dev
O projeto estará disponível em: http://localhost:3000/api/{endpoint}
Acesse a documentação Swagger em: http://localhost:3000/api-docs
npm run build
# ou
yarn build
node dist/index.js
- Node.js: Runtime JavaScript
- TypeScript: Superconjunto tipado de JavaScript
- Express: Framework para Node.js
- Sequelize: ORM para Node.js
- PostgreSQL: Banco de dados relacional
- Webpack: Empacotador de módulos
- passport-jwt: Estratégia de autenticação JWT para Passport
- Bcrypt.js: Biblioteca para criptografia de senhas
- Axios: Cliente HTTP para Node.js
- Docker: Plataforma de contêineres
Project license Apache-2.0