Skip to content

Commit b478813

Browse files
author
Esteban Echeverry
committed
Definir la constitución del proyecto y su forma de ejecución
1 parent 0e2551d commit b478813

File tree

4 files changed

+81
-33
lines changed

4 files changed

+81
-33
lines changed

docs/proyecto/descripcion.rst

Lines changed: 25 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -4,41 +4,34 @@ Descripción
44
Realizaremos una aplicación para gestionar nuestras tareas por realizar.
55
En general, la estructura de la aplicación estará compuesta por:
66

7-
- **Tarea** (task): Unidad básica de gestión del trabajo cuyos atributos serán:
8-
- UID (uid: str)
9-
- Nombre (name: str)
10-
- Fecha Límite (due_date: datetime)
11-
- Prioridad (priority: int)
12-
- ID Proyecto (project_id: str)
13-
- ID Etapa (stage_id: str)
14-
- Comentarios (comments: str)
15-
16-
- **Proyecto** (project): Contenedor de tareas con un mismo propósito cuyos atributos serán:
17-
- UID (uid: str)
18-
- Nombre (name: str)
19-
- Etapas (stage_ids: List[str])
20-
- Comentarios (comments: str)
21-
22-
- **Etapa** (stage): Estado en el que puede estar cada tarea. Un proyecto tiene múltiples etapas. Sus atributos son:
23-
- UID (uid: str)
24-
- Nombre (name: str)
25-
- Cierre (closure: bool)
7+
`Taskit Repo <https://github.com/nubark/clean-architecture-python.git>`_
8+
9+
| - **Tarea** (task): Unidad básica de gestión del trabajo cuyos atributos serán:
10+
| UID (uid: str)
11+
| Nombre (name: str)
12+
| Fecha Límite (due_date: datetime)
13+
| Prioridad (priority: int)
14+
| ID Proyecto (project_id: str)
15+
| Etapa (stage: str)
16+
| Comentarios (comments: str)
17+
18+
| - **Proyecto** (project): Contenedor de tareas con un mismo propósito cuyos
19+
atributos serán:
20+
| UID (uid: str)
21+
| Nombre (name: str)
22+
| Comentarios (comments: str)
2623
2724
La aplicación nos permitirá:
2825

29-
- Crear, leer, modificar y eliminar nuevas tareas, proyectos y etapas.
26+
- Crear, leer, modificar y eliminar nuevas tareas y proyectos.
3027
- Asignar tareas a proyectos específicos.
31-
- Definir la prioridad y fecha límite de cada tarea.
32-
- Mover las tareas por las distintas etapas del proyecto hasta el estado de cierre.
28+
- Mover las tareas por las distintas etapas del proyecto hasta el
29+
estado de cierre.
3330

34-
Igualmente, implementaremos algunas restricciones:
31+
Obtendremos información valiosa para analizar detalladamente
32+
nuestro trabajo pudiendo:
3533

36-
- Un proyecto sólo podrá tener una etapa de cierre.
37-
- No se podrán eliminar tareas en estado de cierre.
38-
- Habrá un proyecto, entre todos, que se usará por defecto cuando no se especifique alguno en las tareas.
39-
40-
Finalmente, obtendremos información valiosa para analizar detalladamente nuestro trabajo pudiendo:
41-
42-
- Reportar las tareas con fecha límite igual o inferior al día actual, los próximos 7 días, etc.
43-
- Reportar las tareas que se encuentran en un mismo proyecto.
44-
- Reportar las tareas que se encuentran en una misma etapa (a través de todos los proyectos).
34+
- Reportar todas las tareas registradas.
35+
- Reportar todos los proyectos registrados.
36+
- Reportar todas las tareas pertenecientes a un mismo proyecto.
37+
- Reportar todas las tareas con la misma etapa.

docs/proyecto/ejecución.rst

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
Ejecución
2+
*********
3+
4+
El repositorio contiene 6 ramas de desarrollo incremental:
5+
6+
- feat/01_models
7+
- feat/02_repositories
8+
- feat/03_coordinators
9+
- feat/04_infrastructure
10+
- feat/05_reports
11+
- feat/06_main
12+
13+
Cada una de ellas construye una capa o componente de la aplicación. En el
14+
proceso de recrear esta construcción, usaremos un enfoque de desarrollo
15+
guiado por pruebas (i.e. *TDD*). Esto asegurará que los componentes que
16+
diseñemos, se encuentren desacoplados desde el inicio y sean fáciles de
17+
extender.
18+
19+
Todos iniciarán en la rama *feat/docs* la cuál no contiene código. En el
20+
proyector se presentará el *estado* o rama objetivo. En la primera iteración
21+
esta rama será la *feat/01_models*. En la segunda iteración, cuando hayamos
22+
alcanzado el estado de la rama *feat/01_models*, la rama objetivo será la
23+
*feat/02_repositories*. Así lo haremos sucesivamente hasta completar la
24+
aplicación.
25+
26+
Dedicaremos un tiempo máximo de 15 minutos a cada fase. Si al completarse los
27+
15 minutos no se ha terminado la totalidad de la funcionalidad requerida,
28+
lamentablemente tendremos que ejecutar **git reset --hard**. Por supuesto,
29+
pueden guardar sus cambios en una rama temporal si quieren (e.g. my/01_models).
30+
La idea es contar con el tiempo suficiente para abordar la totalidad de la
31+
aplicación. No se preocupen, tendrán tiempo de sobra para seguir el paso a
32+
paso en la comodidad de sus casas ;D
33+
34+
Comandos Importantes
35+
====================
36+
37+
- Correr los tests con pytest:
38+
39+
pytest -s --cov-report term-missing --cov-branch --cov taskit tests
40+
41+
- Empaquetar nuestra
42+
43+
pyinstaller -F taskit/__main__.py -n taskit
44+
45+
Finalmente
46+
==========
47+
48+
**¡Manos a la obra!**

docs/proyecto/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,6 @@ Proyecto *Taskit*
99

1010
descripcion.rst
1111
preparacion.rst
12+
ejecución.rst
1213

1314

docs/proyecto/preparacion.rst

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,8 @@
11
Preparación
2-
***********
2+
***********
3+
4+
- Asegurarse de tener instalado **Python 3.5+**
5+
- Clonar el repositorio del proyecto: **git clone https://github.com/nubark/clean-architecture-python.git**
6+
- Crear un nuevo **virtual environment** (e.g. clean-architecture-python)
7+
- Instalar las dependencias del proyecto: **pip install -r requirements.txt**
8+
- Hacer checkout a la rama *feat/docs*: **git checkout feat/docs**

0 commit comments

Comments
 (0)