https://github.com/underewarrr/nextjs-underhost-system
Este é um projeto de Sistema de Gerenciamento de Maquina virtual desenvolvido com Next.js
https://github.com/underewarrr/nextjs-underhost-system
css javascript jwt-authentication mercadopago mern-stack nextjs typescript vercel
Last synced: 2 months ago
JSON representation
Este é um projeto de Sistema de Gerenciamento de Maquina virtual desenvolvido com Next.js
- Host: GitHub
- URL: https://github.com/underewarrr/nextjs-underhost-system
- Owner: Underewarrr
- Created: 2024-07-26T00:35:30.000Z (almost 2 years ago)
- Default Branch: master
- Last Pushed: 2024-08-28T15:15:01.000Z (almost 2 years ago)
- Last Synced: 2025-10-07T01:37:29.462Z (9 months ago)
- Topics: css, javascript, jwt-authentication, mercadopago, mern-stack, nextjs, typescript, vercel
- Language: JavaScript
- Homepage: https://underhost.cloud/
- Size: 2.38 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# UnderHost System em desenvolvimento
Este é um projeto de Sistema de Gerenciamento de Maquina virtual desenvolvido com Next.js. O projeto utiliza Prisma para gerenciamento de banco de dados e várias bibliotecas como Bootstrap, JWT, Mercado Pago, entre outras, para fornecer funcionalidades completas de autenticação, gestão de usuários e solicitações de VPS.
## Funcionalidades
- **Autenticação de Usuário**: Registro, login e gerenciamento de sessão com tokens JWT.
- **Gerenciamento de Usuários**: Armazenamento seguro de senhas com bcrypt, e-mails únicos para cada usuário.
- **Solicitações de VPS**: Os usuários podem solicitar VPS com configurações personalizadas, como número de cores, memória, armazenamento, etc.
- **Pagamentos**: Integração com Mercado Pago para gerenciar pagamentos de VPS.
## Funcionalidades em desenvolvimento
- **Configuração de maquina virtual**: Usando NodeJS para connectar ao OracleVM e Instanciar uma maquina após a conclusão do pagamento.
## Tecnologias Utilizadas
- **Next.js**: Framework React para renderização no lado do servidor.
- **Prisma**: ORM para gerenciamento de banco de dados PostgreSQL.
- **PostgreSQL**: Banco de dados relacional utilizado no projeto.
- **Bootstrap**: Framework CSS para design responsivo.
- **JWT**: Gerenciamento de autenticação segura.
- **Mercado Pago**: Integração de pagamento para VPS.
## APIs no Backend
As seguintes rotas de API estão disponíveis no backend:
- `api/admin/user`: Gerenciamento de usuários pelo administrador.
- `api/user/login`: Autenticação de usuário (login).
- `api/user/register`: Registro de novos usuários.
- `api/user/user`: Obtenção de dados do usuário autenticado.
- `api/vps/id`: Consulta de informações de um VPS específico.
- `api/vps/compdownload`: Download de componentes de VPS.
- `api/vps/deleteUnpaid`: Exclusão de VPS não pagos.
- `api/vps/orders`: Gerenciamento de pedidos de VPS.
## Instalação e Configuração
### Pré-requisitos
- Node.js
- PostgreSQL
### Passos para Instalação
1. Clone o repositório:
```bash
git clone https://github.com/seu-usuario/nextjs-underhost-system.git
cd nextjs-underhost-system
```
2. Instale as dependências:
```bash
npm install
```
3. Configure as variáveis de ambiente:
Crie um arquivo `.env` na raiz do projeto e adicione suas configurações:
```
DATABASE_URL=postgresql://usuario:senha@localhost:5432/nome_do_banco
JWT_SECRET=sua_chave_secreta
MERCADOPAGO_ACCESS_TOKEN=seu_token_de_acesso
```
4. Execute as migrações do banco de dados:
```bash
npm run migrate
```
5. Inicie o servidor de desenvolvimento:
```bash
npm run dev
```
### Scripts Disponíveis
- `dev`: Inicia o servidor de desenvolvimento.
- `build`: Cria a build de produção.
- `start`: Inicia o servidor em modo de produção.
- `lint`: Executa o linter para verificar erros de código.
- `dbreset`: Reseta o banco de dados e aplica migrações.
- `migrate`: Aplica as migrações do banco de dados.
- `dbmanage`: Abre a interface de gerenciamento do banco de dados com Prisma Studio.
## Estrutura do Projeto
- **next.config.js**: Configurações do Next.js para ignorar o ESLint durante a build de produção.
- **tsconfig.json**: Configurações do TypeScript para o projeto.
- **schema.prisma**: Definições do modelo de dados utilizando Prisma.
### Modelos do Prisma
- **User**: Modelo para gerenciamento de usuários.
- **VPSRequest**: Modelo para solicitações de VPS.
- **Payment**: Modelo para gerenciamento de pagamentos.
## Contribuição
Contribuições são bem-vindas! Sinta-se à vontade para abrir issues ou enviar pull requests.
## Licença
Este projeto está licenciado sob a [MIT License](LICENSE).