generated from FGA0138-MDS-Ajax/template-repository
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'main' of https://github.com/FGA0138-MDS-Ajax/2024.2-Sag…
- Loading branch information
Showing
20 changed files
with
373 additions
and
5 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
venv | ||
__pycache__/ | ||
.env |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,144 @@ | ||
| Versão | Data | Descrição da Alteração | Nome(s) Integrante(s) | | ||
| :----: | :--: | :--------------------: | :-------------------: | | ||
| 1.0 | 25/02/2024 | Mudei isso e aquilo | Fulano de Tal | | ||
# Documento de Arquitetura | ||
## Projeto Pele Dourada | ||
### Equipe Sagittarius | ||
**Versão 1.0** | ||
|
||
--- | ||
|
||
## Histórico de Revisão | ||
|
||
| Data | Versão | Descrição | Autor(es) | | ||
|------------|--------|-----------------------------------------------|-----------------------------| | ||
| 16/12/2024 | 1.0 | Redação inicial do documento de arquitetura. | Equipe Sagittarius | | ||
| 16/12/2024 | 1.0 | Tópicos 1.1 e 1.2. | Vilmar Fagundes | | ||
| 16/12/2024 | 1.0 | Tópicos 2.3 e Diagrama de casos de uso. | Matheus de Alcântara | | ||
| 16/12/2024 | 1.0 | Tópicos 2.4 e 2.8. | Fábio Santos Araújo | | ||
| 16/12/2024 | 1.0 | Tópicos 2.1, 2.2 e diagrama de classes. | Caio Lucas e Gabriel Flores | | ||
| 16/12/2024 | 1.0 | Tópico 2.5. | Gabriel Flores | | ||
| 17/12/2024 | 1.0 | Tópico 2.6. | Lucas Borges e André Gustavo| | ||
| 17/12/2024 | 1.0 | Tópico 2.7. | Matheus de Alcântara e João Victor Pires | | ||
| 17/12/2024 | 1.0 | Tópico 2.9. | João Victor Pires | | ||
|
||
--- | ||
|
||
## Autores | ||
|
||
| Matrícula | Nome | Papel Assumido | Contribuição (%) | | ||
|--------------|-----------------------|--------------------------------|------------------| | ||
| 231026509 | Matheus de Alcântara | Desenvolvedor Backend | 10% | | ||
| 231026358 | Gabriel Flores | Desenvolvedor Banco de Dados | 10% | | ||
| 231026302 | Caio Lucas | Desenvolvedor Backend | 10% | | ||
| 222022082 | Fábio Santos | Desenvolvedor Banco de Dados | 10% | | ||
| 231026590 | Vilmar Fagundes | Desenvolvedor Banco de Dados | 10% | | ||
| 231026400 | João V. Pires | Desenvolvedor Backend | 10% | | ||
| 221007635 | André Gustavo | Desenvolvedor Frontend | 10% | | ||
| 222015159 | Lucas Borges | Desenvolvedor Backend | 10% | | ||
| 222006150 | Mikael Kauan | Desenvolvedor Frontend | 10% | | ||
| 221008196 | João V. Silva | Desenvolvedor Frontend | 10% | | ||
|
||
--- | ||
|
||
## Sumário | ||
|
||
1. [Introdução](#introducao) | ||
- [Propósito](#proposito) | ||
- [Escopo](#escopo) | ||
2. [Representação Arquitetural](#representacao-arquitetural) | ||
- [Definições](#definicoes) | ||
- [Justifique sua escolha](#justifique-sua-escolha) | ||
- [Detalhamento](#detalhamento) | ||
- [Metas e restrições arquiteturais](#metas-e-restricoes-arquiteturais) | ||
- [Visão de Casos de Uso (escopo do produto)](#visao-de-casos-de-uso) | ||
- [Visão Lógica](#visao-logica) | ||
- [Visão de Implementação](#visao-de-implementacao) | ||
- [Visão de Implantação](#visao-de-implantacao) | ||
- [Restrições Adicionais](#restricoes-adicionais) | ||
3. [Bibliografia](#bibliografia) | ||
|
||
--- | ||
|
||
## Introdução | ||
|
||
### Propósito | ||
Este documento tem como objetivo descrever a arquitetura do sistema sendo desenvolvido pelo grupo Sagittarius, na disciplina de MDS – Métodos de Desenvolvimento de Software (2024.2). O projeto, chamado **Pele Dourada**, busca fornecer uma visão do sistema para desenvolvedores, testadores e demais interessados. | ||
|
||
### Escopo | ||
O projeto **Pele Dourada** visa criar um sistema para a loja **Frango Assado Pele Dourada**, com funcionalidades como: | ||
- Gerenciamento de vendas semanais e mensais. | ||
- Controle de estoque. | ||
- Gerenciamento de encomendas. | ||
|
||
--- | ||
|
||
## Representação Arquitetural | ||
|
||
### Definições | ||
O sistema seguirá uma arquitetura **monolítica**. | ||
|
||
### Justifique sua escolha | ||
A arquitetura monolítica foi escolhida devido a: | ||
- **Simplicidade**: Facilita o aprendizado e a centralização do código. | ||
- **Custo**: Menor custo de implementação e menor propensão a problemas de deploy. | ||
- **Teste e Debugging**: Testes e rastreamento de erros são mais simples. | ||
- **Desempenho**: Ideal para sistemas de baixa escala, com menor sobrecarga de rede. | ||
|
||
### Detalhamento | ||
O sistema terá três camadas principais: | ||
1. **Interface do Usuário**: Login, cadastro de produtos, vendas, etc. | ||
2. **Lógica de Negócios**: Comunicação com o banco para garantir funcionalidade correta. | ||
3. **Banco de Dados**: Armazena os dados de forma segura e eficiente. | ||
|
||
### Metas e restrições arquiteturais | ||
- **Escalabilidade**: Suporte ao crescimento de dados sem comprometer o desempenho. | ||
- **Desempenho**: Respostas rápidas para uma experiência satisfatória. | ||
- **Manutenção**: Facilitar correções e melhorias. | ||
- **Segurança**: Proteger contra acessos não autorizados. | ||
|
||
--- | ||
|
||
## Visão de Casos de Uso | ||
|
||
### Funcionalidades | ||
O sistema permitirá: | ||
- Gestão de estoque. | ||
- Gerenciamento de vendas e encomendas. | ||
- Cadastro de clientes. | ||
- Controle financeiro. | ||
|
||
### Cenários | ||
O administrador poderá: | ||
- Fazer login. | ||
- Gerenciar estoque, vendas, e encomendas. | ||
- Cadastrar clientes. | ||
- Visualizar resumo financeiro. | ||
|
||
--- | ||
|
||
## Visão de Implementação | ||
A arquitetura segue o padrão MTV (Model-Template-View): | ||
1. **Frontend**: Desenvolvido com React. | ||
2. **Backend**: Desenvolvido com Django, responsável pelas regras de negócio. | ||
3. **Banco de Dados**: MongoDB para armazenar os dados. | ||
|
||
--- | ||
|
||
## Visão de Implantação | ||
- O software será implantado em um desktop configurado como servidor web. | ||
- O frontend usará React e Bootstrap. | ||
- O backend usará Django. | ||
- O banco de dados será MongoDB, integrado via Djongo. | ||
|
||
--- | ||
|
||
## Restrições Adicionais | ||
- Apenas o administrador terá acesso ao sistema. | ||
- Login será obrigatório. | ||
- Cadastro de clientes será necessário para encomendas. | ||
|
||
--- | ||
|
||
## Bibliografia | ||
1. AJAX, Ricardo. Slides do professor Ricardo Ajax. 2024. | ||
2. SERRANO, Milene. Material da Profa. Milene Serrano. 2024. | ||
3. Draw.io: https://app.diagrams.net/ | ||
4. Lucidchart: https://lucid.app/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
from django.contrib import admin | ||
|
||
# Register your models here. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
from django.apps import AppConfig | ||
|
||
|
||
class ApiConfig(AppConfig): | ||
default_auto_field = 'django.db.models.BigAutoField' | ||
name = 'api' |
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
from django.db import models | ||
|
||
# Create your models here. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
from django.test import TestCase | ||
|
||
# Create your tests here. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
from django.shortcuts import render | ||
|
||
# Create your views here. |
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
#!/usr/bin/env python | ||
"""Django's command-line utility for administrative tasks.""" | ||
import os | ||
import sys | ||
|
||
|
||
def main(): | ||
"""Run administrative tasks.""" | ||
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'pele_dourada.settings') | ||
try: | ||
from django.core.management import execute_from_command_line | ||
except ImportError as exc: | ||
raise ImportError( | ||
"Couldn't import Django. Are you sure it's installed and " | ||
"available on your PYTHONPATH environment variable? Did you " | ||
"forget to activate a virtual environment?" | ||
) from exc | ||
execute_from_command_line(sys.argv) | ||
|
||
|
||
if __name__ == '__main__': | ||
main() |
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
""" | ||
ASGI config for pele_dourada project. | ||
It exposes the ASGI callable as a module-level variable named ``application``. | ||
For more information on this file, see | ||
https://docs.djangoproject.com/en/5.1/howto/deployment/asgi/ | ||
""" | ||
|
||
import os | ||
|
||
from django.core.asgi import get_asgi_application | ||
|
||
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'pele_dourada.settings') | ||
|
||
application = get_asgi_application() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,130 @@ | ||
""" | ||
Django settings for pele_dourada project. | ||
Generated by 'django-admin startproject' using Django 5.1.4. | ||
For more information on this file, see | ||
https://docs.djangoproject.com/en/5.1/topics/settings/ | ||
For the full list of settings and their values, see | ||
https://docs.djangoproject.com/en/5.1/ref/settings/ | ||
""" | ||
|
||
import os | ||
from pathlib import Path | ||
|
||
from dotenv import load_dotenv | ||
|
||
load_dotenv() | ||
|
||
# Build paths inside the project like this: BASE_DIR / 'subdir'. | ||
BASE_DIR = Path(__file__).resolve().parent.parent | ||
|
||
|
||
# Quick-start development settings - unsuitable for production | ||
# See https://docs.djangoproject.com/en/5.1/howto/deployment/checklist/ | ||
|
||
# SECURITY WARNING: keep the secret key used in production secret! | ||
SECRET_KEY = os.getenv('SECRET_KEY', default="") | ||
|
||
# SECURITY WARNING: don't run with debug turned on in production! | ||
DEBUG = True | ||
|
||
ALLOWED_HOSTS = ['*'] | ||
|
||
|
||
# Application definition | ||
|
||
INSTALLED_APPS = [ | ||
'django.contrib.admin', | ||
'django.contrib.auth', | ||
'django.contrib.contenttypes', | ||
'django.contrib.sessions', | ||
'django.contrib.messages', | ||
'django.contrib.staticfiles', | ||
'api', | ||
'rest_framework', | ||
] | ||
|
||
MIDDLEWARE = [ | ||
'django.middleware.security.SecurityMiddleware', | ||
'django.contrib.sessions.middleware.SessionMiddleware', | ||
'django.middleware.common.CommonMiddleware', | ||
'django.middleware.csrf.CsrfViewMiddleware', | ||
'django.contrib.auth.middleware.AuthenticationMiddleware', | ||
'django.contrib.messages.middleware.MessageMiddleware', | ||
'django.middleware.clickjacking.XFrameOptionsMiddleware', | ||
] | ||
|
||
ROOT_URLCONF = 'pele_dourada.urls' | ||
|
||
TEMPLATES = [ | ||
{ | ||
'BACKEND': 'django.template.backends.django.DjangoTemplates', | ||
'DIRS': [], | ||
'APP_DIRS': True, | ||
'OPTIONS': { | ||
'context_processors': [ | ||
'django.template.context_processors.debug', | ||
'django.template.context_processors.request', | ||
'django.contrib.auth.context_processors.auth', | ||
'django.contrib.messages.context_processors.messages', | ||
], | ||
}, | ||
}, | ||
] | ||
|
||
WSGI_APPLICATION = 'pele_dourada.wsgi.application' | ||
|
||
|
||
# Database | ||
# https://docs.djangoproject.com/en/5.1/ref/settings/#databases | ||
|
||
DATABASES = { | ||
'default': { | ||
'ENGINE': 'django.db.backends.sqlite3', | ||
'NAME': BASE_DIR / 'db.sqlite3', | ||
} | ||
} | ||
|
||
|
||
# Password validation | ||
# https://docs.djangoproject.com/en/5.1/ref/settings/#auth-password-validators | ||
|
||
AUTH_PASSWORD_VALIDATORS = [ | ||
{ | ||
'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', | ||
}, | ||
{ | ||
'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', | ||
}, | ||
{ | ||
'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', | ||
}, | ||
{ | ||
'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', | ||
}, | ||
] | ||
|
||
|
||
# Internationalization | ||
# https://docs.djangoproject.com/en/5.1/topics/i18n/ | ||
|
||
LANGUAGE_CODE = 'en-us' | ||
|
||
TIME_ZONE = 'UTC' | ||
|
||
USE_I18N = True | ||
|
||
USE_TZ = True | ||
|
||
|
||
# Static files (CSS, JavaScript, Images) | ||
# https://docs.djangoproject.com/en/5.1/howto/static-files/ | ||
|
||
STATIC_URL = 'static/' | ||
|
||
# Default primary key field type | ||
# https://docs.djangoproject.com/en/5.1/ref/settings/#default-auto-field | ||
|
||
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
""" | ||
URL configuration for pele_dourada project. | ||
The `urlpatterns` list routes URLs to views. For more information please see: | ||
https://docs.djangoproject.com/en/5.1/topics/http/urls/ | ||
Examples: | ||
Function views | ||
1. Add an import: from my_app import views | ||
2. Add a URL to urlpatterns: path('', views.home, name='home') | ||
Class-based views | ||
1. Add an import: from other_app.views import Home | ||
2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') | ||
Including another URLconf | ||
1. Import the include() function: from django.urls import include, path | ||
2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) | ||
""" | ||
from django.contrib import admin | ||
from django.urls import path | ||
|
||
urlpatterns = [ | ||
path('admin/', admin.site.urls), | ||
] |
Oops, something went wrong.