Skip to content

O SOSCidade surge como uma proposta de sistema que visa solucionar os problemas de infraestrutura urbana, que se referem às estruturas e serviços necessários para o funcionamento de uma cidade, considerando aspectos ambientais, sociais e econômicos.

License

Notifications You must be signed in to change notification settings

RubensLFerreira/api_soscidade

Repository files navigation

api_soscidade

O SOSCidade surge como uma proposta de sistema que visa solucionar os problemas de infraestrutura urbana, que se referem às estruturas e serviços necessários para o funcionamento de uma cidade, considerando aspectos ambientais, sociais e econômicos.


🙍‍♂️ Atores do sistema

Entidades Descrição
Cidadão O cidadão será a entidade principal desta aplicação, podendo realizar denúncias, acompanhar as denúncias em seus dashboard, alterar ou excluir os dados da denúncia, além da possibilidade de alterar seus dados na aba perfil.
Prefeitura A prefeitura poderá criar uma conta de acesso parar ir acompanhando as denúncias feitas pelos cidadãos da cidade ao qual pertence, para cada denúncia resolvida, será alterado o status para solucinado no dashboard do cidadão.
Administrador O Administrador terá acesso total a aplicação, podendo visualizar todos os usuários existentes e suas denúncias com objetivo de manter o controle da aplicação. O Administrador também terá ter poder de excluir aqueles usuários que não esitverem em conformidade com os termos de responsabilidade.

🛠 Funcionalidades

Funcionalidade Descrição
RF01 Acessar rotas públicas no sistema
RF02 Criar usuários (cidadão, prefeitura)
RF03 Realizar denúncias logado no sistema
RF04 Visualizar, editar e/ou excluir denúncias
RF05 Alterar as denúncias pendentes para finalizadas
RF06 Moderador com acesso admin ao sistema

🖥 Telas identificadas no sistema

  • Tela inícial
  • Tela de Login
  • Tela de cadastro de usuário
  • Tela de denúncia
  • Tela dashboard
  • Tela de editar
  • Tela de perfil
  • Tela de Not Page

🖇 Diagrama ER

erDiagram
    PERFIL ||..|{ USUARIO : TEM
    USUARIO ||..|{ CIDADAO : POSSUI
    USUARIO ||..|{ PREFEITURA : POSSUI
    CIDADAO ||..|{ PROBLEMA : PERTENCE
    PREFEITURA ||..|{ PROBLEMA : PERTENCE
    PROBLEMA }|..|| LOCALIZACAO : POSSUI
    CATEGORIA ||..|{ PROBLEMA : PERTENCE
Loading

🗂 Arquitetura das pastas (back-end)

flowchart TB
    subgraph recommendation
     vscode
    end

    subgraph source
    src --- index.js
    end
    
    subgraph application
    src --- server
    server --- server.js
    server --- controllers
    server --- database
    server --- helpers
    server --- models
    server --- router
    server --- validations
    end

    subgraph uploads
    server --- public 
    public --- imagens
    imagens --- denuncias
    end
Loading

⚙ Dependências


⚙ Dependências de desenvolvimento


🚩 Endpoints/rotas

  BaseURL (http://localhost:8080)
  Token (Chave de autorização e autenticação)

Rotas de usuário

Requisição Rota Descrição
GET /usuarios Buscar todos os usuários
GET /usuario Verificar se usuário existe através do token
GET /usuario/:id Buscar usuário pelo seu ID

Rotas de cidadão

Requisição Rota Descrição
GET /cidadaos Buscar todos os cidadaos
GET /cidadao/:id Verificar se cidadão existe pelo ID
POST /cidadaos/cadastrar Criar novo registro
PUT /editar/:id Editar cidadão pelo ID
DELETE /excluir/:id Excluir cidadão pelo ID

Rotas de prefeitura

Requisição Rota Descrição
GET /prefeituras Buscar todas as prefeituras
GET /prefeitura/:id Verificar se prefeitura existe pelo ID
POST /prefeitura/cadastrar Criar novo registro
PUT /prefeitura/editar/:id Editar prefeitura pelo ID
DELETE /prefeitura/excluir/:id Excluir prefeitura pelo ID

Rotas de problema

Requisição Rota Descrição
GET /problemas Buscar todos os problemas
GET /problema/:id Buscar problema pelo ID
GET /problemas/usuario/:id Buscar problemas pelo token do usuario
GET /problemas/pendentes Buscar problemas pendentes
GET /problemas/finalizados Buscar problemas finalizados
POST /problemas/cadastrar/:tipo Registrar novo problema
PUT /problemas/editar/:id Editar problema pelo ID
DELETE /problemas/excluir/:id Excluir problema pelo ID

Outras rotas

Requisição Rota Descrição
GET baseURL/ Página inicial da aplicação
POST baseURL/login Rota de login de usuário
GET baseURL/imagem/:imagemName Busca imagem pelo nome

💾 Configuração e instalação

Clonar o repositório

git clone https://github.com/RubensLFerreira/soscidade.git

Clonar a API api_soscidade

git clone https://github.com/RubensLFerreira/api_soscidade.git

Instalar todas as depedências necessarias de ambos diretórios

npm install

Inicia primeiro API e depois a aplicação soscidade com o mesmo comandos abaixo

npm run dev

Acessar o endereço

http://localhost:5173/

Observação:

  • Baixar as extensões recomendadas na pasta .vscode.
  • É necessário atualizar a conexão com banco de dados com suas credências no arquivo .venv com base no exemplo .venv.exemple.
  • Passar um valor aleatório para a chave SECRET no arquivo .venv.exemple.
  • A API deve rodar na porta 8080

🏆 Equipe

Rubens
Lima

Rubens
Lima

Rubens
Lima

About

O SOSCidade surge como uma proposta de sistema que visa solucionar os problemas de infraestrutura urbana, que se referem às estruturas e serviços necessários para o funcionamento de uma cidade, considerando aspectos ambientais, sociais e econômicos.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published