An open API service indexing awesome lists of open source software.

https://github.com/robsonmt/code-challenge-nevoa


https://github.com/robsonmt/code-challenge-nevoa

Last synced: 8 months ago
JSON representation

Awesome Lists containing this project

README

          

# 📘 Projeto Fullstack de Cursos (Backend + Frontend)

Este repositório contém duas aplicaçÔes:

- 📩 **Backend**: API REST com Node.js, Express, TypeORM e PostgreSQL
- đŸ’» **Frontend**: Interface web com Next.js e TailwindCSS

---

## đŸ§± Requisitos para rodar localmente

- Node.js (v18+ recomendado)
- PostgreSQL (v15+)
- Yarn ou npm (Yarn recomendado)
- Git

---

## 📂 Estrutura do Projeto

```
.
├── backend/
│ ├── src/
│ ├── package.json
│ └── tsconfig.json
├── frontend/
│ ├── app/ ou pages/
│ ├── package.json
│ └── tailwind.config.js
```

---

## đŸ§‘â€đŸ’» 1. Configurando o Banco de Dados

1. Inicie o PostgreSQL localmente.
2. Crie um banco chamado:

```bash
psql -U postgres
CREATE DATABASE course_db;
```

3. VocĂȘ pode usar `pgAdmin`, DBeaver ou CLI para isso.

---

## ⚙ 2. Configurando o Backend

### Acesse a pasta:

```bash
cd backend
```

### Instale as dependĂȘncias:

```bash
yarn install
```

### Configure o `.env`:

Crie o arquivo `backend/.env` com o conteĂșdo abaixo:

```env
DB_HOST=localhost
DB_PORT=5432
DB_USERNAME=postgres
DB_PASSWORD=1234
DB_NAME=course_db

SECRET_KEY=
EXPIRES_IN=1h
RUN_PORT=8000
```

> Ajuste `POSTGRES_PWD` conforme sua configuração local.

### Compile o TypeScript:

```bash
yarn build
```

### Rode as migraçÔes:

```bash
yarn migration:run
```

### Inicie o servidor:

```bash
yarn start
```

> A API estarĂĄ em: [http://localhost:8000](http://localhost:8000)

---

## 🌐 3. Configurando o Frontend

### Acesse a pasta:

```bash
cd ../frontend
```

### Instale as dependĂȘncias:

```bash
yarn install
```

### Rode o servidor Next.js:

```bash
yarn dev
```

> A aplicação web estarå disponível em: [http://localhost:3000](http://localhost:3000)

---

## 🚀 Endpoints principais da API

| Método | Rota | Descrição |
|--------|------------------|------------------------|
| POST | /register | Registro de usuĂĄrio |
| POST | /login | Login e token JWT |
| GET | /courses/public | Listar cursos pĂșblicos |
| CRUD | /courses | Gerenciar cursos |

---

## đŸ§Ș Scripts Ășteis no backend

```json
"scripts": {
"build": "tsc",
"start": "node dist/server.js",
"dev": "ts-node-dev src/server.ts",
"migration:run": "ts-node -r tsconfig-paths/register ./node_modules/typeorm/cli.js migration:run -d src/data-source.ts"
}
```

---

## 📌 Dicas

- Certifique-se de que o PostgreSQL estå rodando e aceitando conexÔes em `localhost:5432`.
- Use o comando `yarn dev` no backend para hot-reload durante o desenvolvimento.
- Use ferramentas como [Insomnia](https://insomnia.rest/) ou [Postman](https://www.postman.com/) para testar a API.

---

## ❓ DĂșvidas?

Abra uma **issue** no repositório ou entre em contato com o autor. 😉