Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
matheusdealcantara committed Dec 19, 2024
2 parents 2d4f1ab + 0fc7c14 commit 941ed87
Show file tree
Hide file tree
Showing 20 changed files with 373 additions and 5 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
venv
__pycache__/
.env
147 changes: 144 additions & 3 deletions docs/documento-arquitetura/documento-arquitetura.md
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/
2 changes: 1 addition & 1 deletion docs/documento-visao/documento-visao.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
| 1.0 | 26/11/2024 | Redação inicial do documento de visão | Todos |
| 1.1 | 02/12/2024 | Finalização do backlog do produto e planejamento das sprints | Matheus de Alcântara, Vilmar, Gabriel Flores, Caio Sabino e João Victor Pires |

Sagittarius – Sistema de Gestão para a empresa Frango Assado Pele Dourada
Sagittarius – Projeto Pele Dourada

## [VISÃO DO PRODUTO E DO PROJETO](https://1drv.ms/w/c/dc034d221001755e/ERKbbbL04F9LhrPs5txr-z0Bl07xoD9xL0_u6FwRZCJh2w?e=rvMSzA)

Expand Down
2 changes: 1 addition & 1 deletion docs/index.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# 2024.2 Sagittarius - Sistema de Vendas

# Sistema de Gestão para a Empresa Frango Assado Pele Dourada
# Projeto Pele Dourada

## Sobre o Projeto

Expand Down
Empty file added pele_dourada/api/__init__.py
Empty file.
3 changes: 3 additions & 0 deletions pele_dourada/api/admin.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from django.contrib import admin

# Register your models here.
6 changes: 6 additions & 0 deletions pele_dourada/api/apps.py
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.
3 changes: 3 additions & 0 deletions pele_dourada/api/models.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from django.db import models

# Create your models here.
3 changes: 3 additions & 0 deletions pele_dourada/api/tests.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from django.test import TestCase

# Create your tests here.
3 changes: 3 additions & 0 deletions pele_dourada/api/views.py
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 added pele_dourada/db.sqlite3
Empty file.
22 changes: 22 additions & 0 deletions pele_dourada/manage.py
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.
16 changes: 16 additions & 0 deletions pele_dourada/pele_dourada/asgi.py
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()
130 changes: 130 additions & 0 deletions pele_dourada/pele_dourada/settings.py
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'
22 changes: 22 additions & 0 deletions pele_dourada/pele_dourada/urls.py
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),
]
Loading

0 comments on commit 941ed87

Please sign in to comment.