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.
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. |
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 |
- 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
erDiagram
PERFIL ||..|{ USUARIO : TEM
USUARIO ||..|{ CIDADAO : POSSUI
USUARIO ||..|{ PREFEITURA : POSSUI
CIDADAO ||..|{ PROBLEMA : PERTENCE
PREFEITURA ||..|{ PROBLEMA : PERTENCE
PROBLEMA }|..|| LOCALIZACAO : POSSUI
CATEGORIA ||..|{ PROBLEMA : PERTENCE
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
BaseURL (http://localhost:8080)
Token (Chave de autorização e autenticação)
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 |
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 |
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 |
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 |
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 |
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
Rubens |
Rubens |
Rubens |