Skip to content

Latest commit

 

History

History
149 lines (103 loc) · 5.58 KB

06-Arquitetura-solucao.md

File metadata and controls

149 lines (103 loc) · 5.58 KB

Arquitetura da solução

Pré-requisitos: Projeto de interface

Arquitetura da Solução

Diagrama de classes

Diagrama de Classes E-Urna

Modelo de dados

Modelo Entidade Relacionamento

MER E-Urna

Modelo ER

DER E-Urna

Modelo físico

CREATE TABLE Usuario (
    id BIGINT AUTO_INCREMENT PRIMARY KEY,
    nome VARCHAR(255) NOT NULL,
    num_matricula BIGINT UNIQUE NOT NULL,
    email VARCHAR(255),
    senha VARCHAR(255) NOT NULL,
    curso VARCHAR(255)
);

CREATE TABLE Pleito (
    id BIGINT AUTO_INCREMENT PRIMARY KEY,
    nome_pleito VARCHAR(100) NOT NULL,
    status ENUM('ATIVO', 'ENCERRADO') NOT NULL,
    data_inicio DATE,
    data_termino DATE,
    votos_totais INT NOT NULL
);


CREATE TABLE Candidato (
    id BIGINT AUTO_INCREMENT PRIMARY KEY,
    nome VARCHAR(100) NOT NULL,
    curso VARCHAR(100),
    numero_candidato BIGINT NOT NULL UNIQUE,
    pleito_id BIGINT NOT NULL,
    FOREIGN KEY (pleito_id) REFERENCES Pleito(id) ON DELETE CASCADE
);

CREATE TABLE Votos_Candidato (
    id BIGINT AUTO_INCREMENT PRIMARY KEY,
    numero_candidato VARCHAR(100) NOT NULL,
    pleito_id INT,
    FOREIGN KEY (pleito_id) REFERENCES Pleito(id) ON DELETE CASCADE
    FOREIGN KEY ( numero_candidato) REFERENCES Candidato(numero_candidato) ON DELETE CASCADE

);

CREATE TABLE Candidato_Pleito (
    id BIGINT AUTO_INCREMENT PRIMARY KEY,
    numero_candidato VARCHAR(100) NOT NULL,
    pleito_id BIGINT NOT NULL,
    FOREIGN KEY (pleito_id) REFERENCES Pleito(id) ON DELETE CASCADE,
    FOREIGN KEY (numero_candidato) REFERENCES Candidato(id) ON DELETE CASCADE,
    FOREIGN KEY (usuario_id) REFERENCES Usuario(id) ON DELETE CASCADE
);

CREATE TABLE Voto (
    id BIGINT AUTO_INCREMENT PRIMARY KEY,
    numero_votos INT,
    data_registro DATE,
    numero_candidato BIGINT NOT NULL,
    usuario_id BIGINT NOT NULL,
    pleito_id BIGINT NOT NULL,
    FOREIGN KEY (pleito_id) REFERENCES Pleito(id) ON DELETE CASCADE,
    FOREIGN KEY (numero_candidato) REFERENCES Candidato(id) ON DELETE CASCADE,
    FOREIGN KEY (usuario_id) REFERENCES Usuario(id) ON DELETE CASCADE
);

Tecnologias

Mobile App (Frontend):

  • React Native: Framework para desenvolvimento de aplicativos móveis multiplataforma.
  • TypeScript: Linguagem de programação que adiciona tipagem estática ao JavaScript.

Backend API:

  • Spring Boot: Framework para criação de aplicações Java com configuração mínima.
  • Java + Jakarta EE: Plataforma para desenvolvimento de aplicações empresariais.

Business Logic:

  • Java + Lombok: facilita a criação de código repetitivo, especialmente em classes JavaBeans.

Data Access Layer:

  • JPA/Hibernate: Frameworks para mapeamento objeto-relacional (ORM).

Database:

  • MySQL WorkBench: Sistema de gerenciamento de banco de dados
  • SpringData: FrameWork para conexão com o banco de dados

Documentação:

  • Swagger: Ferramenta para documentação e teste de APIs.
Dimensão Tecnologia
Front-end TypeScript + React Native
Back-end Spring Boot + Java + Jakarta EE + Lombok
SGBD MySQL + SpringData
Documentação Swagger
Deploy Vercel

Imagem Arquitetura da Solução

Arquitetura da Solução

Hospedagem

Explique como a hospedagem e o lançamento da plataforma foram realizados.

Links úteis:

Qualidade de software

Conceituar qualidade é uma tarefa complexa, mas ela pode ser vista como um método gerencial que, por meio de procedimentos disseminados por toda a organização, busca garantir um produto final que satisfaça às expectativas dos stakeholders.

No contexto do desenvolvimento de software, qualidade pode ser entendida como um conjunto de características a serem atendidas, de modo que o produto de software atenda às necessidades de seus usuários. Entretanto, esse nível de satisfação nem sempre é alcançado de forma espontânea, devendo ser continuamente construído. Assim, a qualidade do produto depende fortemente do seu respectivo processo de desenvolvimento.

A norma internacional ISO/IEC 25010, que é uma atualização da ISO/IEC 9126, define oito características e 30 subcaracterísticas de qualidade para produtos de software. Com base nessas características e nas respectivas subcaracterísticas, identifique as subcaracterísticas que sua equipe utilizará como base para nortear o desenvolvimento do projeto de software, considerando alguns aspectos simples de qualidade. Justifique as subcaracterísticas escolhidas pelo time e elenque as métricas que permitirão à equipe avaliar os objetos de interesse.

Links úteis: