Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 

Repository files navigation

🧠 Wits


Wits Logo


O Wits é uma plataforma de e-learning gamificada voltada ao desenvolvimento de raciocínio lógico e habilidades cognitivas por meio de desafios, exercícios e mecânicas de progressão. Este repositório reúne os projetos que compõem o ecossistema da aplicação:


📖 Índice


Arquitetura do Projeto

wits/
├── api/          # Back-end NestJS
└── webapp/       # Front-end NextJS

🌐 Wits WebApp

Aplicação front-end desenvolvida com Next.js, React e TypeScript, responsável pela experiência do usuário, autenticação, visualização de conteúdos e interação com a plataforma.

⚙️ Wits API

API REST desenvolvida com NestJS e TypeORM, responsável pelas regras de negócio, autenticação, persistência de dados e integração com o banco de dados.


Tecnologias Utilizadas

Front-end

  • Axios
  • Docker
  • Docker Compose
  • ESLint
  • Framer Motion
  • Jose
  • Lucide React
  • Next.js
  • NextUI
  • Prettier
  • React
  • Sonner
  • TailwindCSS
  • TypeScript
  • Zod

Back-end

  • BCrypt
  • CORS
  • Docker
  • Docker Compose
  • DotEnv
  • Jest
  • JWT
  • MySQL
  • PostgreSQL
  • NestJS
  • Node.js
  • Prettier
  • Swagger UI
  • TS-Node-Dev
  • TypeORM
  • TypeORM Extension
  • TypeScript
  • Zod

Instalação

Para instalar o projeto, é necessário possuir um gerenciador de pacotes JavaScript, como:

  • NPM
  • Yarn
  • PNPM
  • Bun

Clone o repositório:

git clone https://github.com/SEU-USUARIO/wits.git

Entre na pasta do projeto:

cd wits

Instale as dependências de cada aplicação:

API

cd api

npm install
# ou
yarn install
# ou
bun install

WebApp

cd webapp

npm install
# ou
yarn install
# ou
bun install

Configuração da API

Crie um arquivo .env baseado em .env.example.

Estrutura das variáveis

# Database Variables
DB_ENGINE=
DB_HOST=
DB_PORT=
DB_USER=
DB_PASSWORD=
DB_DATABASE=
DB_ENTITIES=

# JWT Variables
JWT_KEY=

# API Variables
API_PORT=
API_URL=

# Integration Variables
FRONTEND_URL=

# Application Environment
NODE_ENV=

Exemplo

# Database Variables
DB_ENGINE=mysql
DB_HOST=localhost
DB_PORT=3306
DB_USER=SEU_USUARIO
DB_PASSWORD=SUA_SENHA
DB_DATABASE=wits
DB_ENTITIES=dist/**/*.entity{.ts,.js}

# JWT Variables
JWT_KEY=MINHA_CHAVE_JWT

# API Variables
API_PORT=5000
API_URL=http://localhost:5000

# Integration Variables
FRONTEND_URL=http://localhost:3000

# Application Environment
NODE_ENV=development

Criando e populando o banco

npm run db:create
npm run db:seed

Em ambientes diferentes de produção, a aplicação concatenará o nome do banco com o ambiente configurado. Por exemplo:

wits_development

Configuração do Front-end

Crie um arquivo .env baseado em .env.example.

Estrutura das variáveis

BASE_URL=
NEXT_PUBLIC_API=

Exemplo

BASE_URL=http://localhost:3000/
NEXT_PUBLIC_API=http://localhost:5000/

Para desenvolvimento local, utilize http em vez de https.


Executando o Projeto

Iniciando a API

npm run start:dev

A API ficará disponível por padrão em:

http://localhost:5000

Iniciando o Front-end

npm run dev

A aplicação ficará disponível por padrão em:

http://localhost:3000

Swagger

Após iniciar a API, a documentação dos endpoints poderá ser acessada através da URL:

http://localhost:{PORTA_DA_API}/swagger

Exemplo:

http://localhost:5000/swagger

Swagger

A documentação permite visualizar e testar todos os endpoints disponíveis na aplicação.


Testes Unitários

Para executar os testes da API:

Altere o valor da variável:

NODE_ENV=test

Crie e popule o banco de testes:

npm run db:create
npm run db:seed

Execute os testes:

npm run test:watch

Com isso será possível selecionar e executar as suítes de testes disponíveis.


Equipe


Desenvolvido para o projeto Wits, uma plataforma gamificada de aprendizagem focada em raciocínio lógico e desenvolvimento cognitivo.

About

Wits, an e-learning system for maths, logics and critic thinking developed for the Sixth Hackathon of OneBitCode

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors