Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/daguttt/beesoftlabs-typescript1-leccion1-task5
https://github.com/daguttt/beesoftlabs-typescript1-leccion1-task5
Last synced: 6 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/daguttt/beesoftlabs-typescript1-leccion1-task5
- Owner: daguttt
- Created: 2022-07-03T20:29:20.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2022-07-03T20:57:19.000Z (over 2 years ago)
- Last Synced: 2023-03-10T20:53:22.568Z (almost 2 years ago)
- Language: TypeScript
- Size: 4.88 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# TypeScript I - Leccion 1 - Task 5
## Challenge 1
Para un sistema de gestión de tareas, deseamos registrar todas las tareas, cada tarea tiene asociada la siguiente información: nombre, fecha de inicio, descripción y estatus, el estatus debe ser uno de los siguientes: pendiente, en proceso, terminada, cancelada. Además, se requiere una lista con todas las tareas pendientes, las tareas terminadas y las canceladas.
```ts
enum TaskStatus {
Pending = "pending",
OnProgress = "on progress",
Canceled = "canceled",
Finished = "finished",
}interface Task {
name: string;
startingDate: Date;
description: string;
status: TaskStatus;
}interface PendingTask extends Task {
state: TaskStatus.Pending;
}interface OnProgressTask extends Task {
state: TaskStatus.OnProgress;
}interface FinishedTask extends Task {
state: TaskStatus.Finished;
}interface CanceledTask extends Task {
state: TaskStatus.Canceled;
}const pendingTaskList: PendingTask[] = [];
const onProgressTaskList: OnProgressTask[] = [];
const canceledTaskList: CanceledTask[] = [];
const finishedTaskList: FinishedTask[] = [];
```## Challenge 2
Queremos implementar un sistema de registro de eventos, para esto, necesitamos guardar una lista con la información de las personas participantes del evento, los datos mínimos por participante son: nombre completo, teléfono, correo. Cada evento cuenta con un nombre, precio, fecha y aforo máximo. Se desea guardar una lista con el historial de los eventos y que cada persona pueda ver los datos de los eventos a los que asistió y a los que piensa asistir en un futuro.
```ts
interface Event {
id: number;
name: string;
price: number;
date: Date;
capacity: number;
}
interface Participant {
name: string;
phone: string;
email: string;
attendedEventList: Event[];
eventsToAttend: Event[];
}const participantList: Participant[] = [];
const eventsHistory: Event[] = [];
```## Challenge 3
D2 requiere un registro de inventario básico, para ello necesita saber la lista de productos existentes en su almacén principal, cada producto debe tener asignados los siguientes atributos: Nombre, fecha de vencimiento, precio, peso, uuid, distribuidor, cantidad.
Se cuenta también con los datos de los distribuidores, entre ellos: nombre, teléfono, productos que ofrece. Además, D2 requiere las siguientes listas: productos en almacén, productos por solicitar a distribuidor y lista de distribuidores
```ts
interface Distributor {
name: string;
phone: string;
offeredProducts: Product[];
}interface Product {
uuid: number;
name: string;
expirationDate: Date;
price: number;
weight: number;
distributor: Distributor;
amount: number;
}const availableProducts: Product[] = [];
const productsToRequest: Product[] = [];
const distributorsList: Distributor[] = [];
```