Skip to content

Trabalho desenvolvido para o projeto final do curso de Sistemas de Informação

License

Notifications You must be signed in to change notification settings

andersondev96/tcc-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Trabalho de conclusão de curso (TCC)

Projeto desenvolvido para o trabalho de conclusão de curso (TCC) de Sistemas de Informação - UFOP.


Índice

📄 Sobre o projeto

O projeto desenvolvido tem o objetivo de auxiliar os microempreendedores individuais (MEIs), por meio de um sistema que permite divulgar os seu negócio e serviços, aproximando do seu público-alvo e aumentando o seu alcance.

🧑‍💻 Tecnologias utilizadas

Para a implementação do servidor, foi utilizada como linguagem de programação o TypeScript, com os bancos de dados Postgres e Redis e a biblioteca do Node.js.

🔧 Requisitos

Usuários

  • Autenticar usuário
  • Cadastrar usuário
  • Recuperar senha
  • Criar refresh token
  • Editar usuário
  • Excluir usuário

MEIs

  • Cadastrar MEIs
  • Editar MEIs
  • Listar MEIs
  • Favoritar MEIs
  • Avaliar MEIs
  • Excluir MEIs
  • Adicionar imagens de MEIs

Serviços

  • Adicionar serviços
  • Editar serviços
  • Listar serviços
  • Filtrar serviços
  • Favoritar serviços
  • Avaliar serviços
  • Excluir serviços
  • Adicionar imagens de serviços
  • Fazer upload de uma lista de serviços através de um arquivo .xlsx

Orçamentos

  • Criar uma solicitação de orçamento para o empreendedor
  • Listar orçamentos do cliente
  • Listar propostas de orçamentos do empreendedor
  • Criar orçamento para o cliente
  • Pesquisar por orçamentos
  • Editar orçamentos
  • Enviar orçamentos
  • Aceitar ou recusar orçamentos

Chat

  • Acessar chat
  • Iniciar conversa
  • Enviar mensagens para o empreendedor

Clientes

  • Listar clientes
  • Pesquisar clientes

Configurações

  • Atualizar configurações
  • Remover conta

🔑 Banco de dados

O banco de dados principal foi o potgreSQL, abaixo é exibido o diagrama ER com as tabelas e relacionamentos.

🚀 Como executar a aplicação

Antes de executar a aplicação certifique que você tenha instalada uma versão LTS do Node, npm e docker.

Para executar a aplicação deve seguir os seguintes passos:

  1. Clone o repositório: https://github.com/andersondev96/tcc-api
  2. Abra o terminal e acesse a pasta tcc-api com o comando: cd tcc-api
  3. Instale as dependências do projeto:
    npm install ou yarn install
  4. Configure as variáveis ambiente:
    APP_ENV="local"
    
    # APP URLS LOCAL
    APP_API_URL="http://localhost:3333"
    APP_WEB_URL="http://localhost:3000"
    
    # DATABASE
    DATABASE_URL="postgresql://database:password@localhost:5432/tcc-api?schema=public"
    APP_SECRET_TOKEN=your-secret-token
    APP_SECRET_REFRESH_TOKEN=your-secret-refresh-token
    
    # GOOGLE MAPS API
    GOOGLE_MAPS_API_KEY=your-google-maps-api-key
    
    ## Storage
    disk=local
    
    ## Email
    MAIL_PROVIDER=s3
    
    #Redis
    REDIS_HOST=localhost
    REDIS_PORT=6379
    REDIS_PASSWORD=your-redis-password
    
    
  5. Execute as migrations do prisma:
    npx prisma migrate dev
  6. Com tudo configurado você poderá acessar a aplicação com o comando

    npm run dev

  7. A aplicação será executada na porta 3333 do servidor. Para acessar as rotas você precisar de um software para realizar requisições HTTP, como o Postman ou Insomnia. Nele você poderá acessar as rotas, com a seguinte URL:

    http://localhost:3333

  8. As collections estão disponíveis no link abaixo:

    Collections

⚙ Deploy da aplicação

O deploy da aplicação foi feito utilizando a plataforma AWS da Amazon, utilizando o EC2.

Para o deploy foi criada uma máquina virtual do ubuntu e configurada as chaves de SSH.

Além disso foi utilizado o Proxy Reverso, com o nginx e o PM2 para gerenciar os processos do Node.

🤝 Como contribuir

  1. Faça um fork do repositório. Crie uma nova branch com as suas alterações:

    git checkout -b my-feature

  2. Salve as suas alterações e crie uma mensagem de commit, dizendo o que você fez:

    git commit -m "feature: My new feature"

  3. Envie as suas alterações:

    git push origin my-feature

📝 Licença

Este projeto está sobre a licença MIT.

👥 Autor


Feito com 💚 por Anderson Fernandes 👋 Entre em contato!

About

Trabalho desenvolvido para o projeto final do curso de Sistemas de Informação

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published