116 lines
2.2 KiB
Markdown
116 lines
2.2 KiB
Markdown
## #Overview
|
|
Today I implemented a full **CRUD system** for the three core entities in the application:
|
|
- **Subjects**
|
|
- **Assignments**
|
|
- **Tasks**
|
|
|
|
This includes creating, editing, viewing details, and deleting records, as well as connecting all screens using Expo Router.
|
|
|
|
---
|
|
|
|
## #ImplementedFeatures
|
|
|
|
### #Subjects
|
|
Created full CRUD flow:
|
|
- `createSubject.tsx`
|
|
- `editSubject.tsx`
|
|
- `viewDetailsSubject.tsx`
|
|
|
|
**Functionality:**
|
|
- Create new subjects
|
|
- Edit existing subjects
|
|
- View subject details
|
|
- Delete subjects
|
|
|
|
**Relationships:**
|
|
- Subjects act as the top-level entity
|
|
- Assignments can optionally be linked to a subject via `sId`
|
|
- Subjects are displayed:
|
|
- globally (`subjects.tsx`)
|
|
- or standalone (`viewDetailsSubjects.tsx`)
|
|
|
|
---
|
|
|
|
### #Assignments
|
|
Created full CRUD flow:
|
|
- `createAssignment.tsx`
|
|
- `editAssignment.tsx`
|
|
- `viewDetailsAssignment.tsx`
|
|
|
|
**Functionality:**
|
|
- Create assignments (with optional `sId`)
|
|
- Edit assignments
|
|
- View assignment details
|
|
- Delete assignments
|
|
|
|
**Relationships:**
|
|
- Assignments can exist:
|
|
- linked to a subject (`sId`)
|
|
- or standalone (`sId = null`)
|
|
- Assignments are displayed:
|
|
- globally (`assignments.tsx`)
|
|
- or within a subject (`viewDetailsSubject.tsx`)
|
|
- or standalone (`viewDetailsAssignment.tsx`)
|
|
|
|
---
|
|
|
|
### #Tasks
|
|
Created full CRUD flow:
|
|
- `createTask.tsx`
|
|
- `editTask.tsx`
|
|
- `viewDetailsTask.tsx`
|
|
|
|
**Functionality:**
|
|
- Create tasks
|
|
- Edit tasks
|
|
- View task details
|
|
- Delete tasks
|
|
|
|
**Relationships:**
|
|
- Tasks are linked to assignments via `aId`
|
|
- Tasks are accessed through assignment detail pages
|
|
- Assignments are displayed:
|
|
- globally (`tasks.tsx`)
|
|
- or within an assignment (`viewDetailsAssignment.tsx`)
|
|
- or standalone (`viewDetailsTask.tsx`)
|
|
|
|
---
|
|
|
|
## #RoutingStructure
|
|
|
|
### #TopLevelScreens
|
|
- `subjects.tsx` → list of all subjects
|
|
- `assignments.tsx` → list of all assignments
|
|
- `tasks.tsx` → list of all tasks
|
|
- `index.tsx` → pre-existing home screen
|
|
|
|
---
|
|
|
|
## #DataModel
|
|
|
|
### #Subject
|
|
- `sId`
|
|
- `title`
|
|
- `description`
|
|
- `isActive`
|
|
- `lastChanged`
|
|
- `uId`
|
|
|
|
### #Assignment
|
|
- `aId`
|
|
- `title`
|
|
- `description`
|
|
- `deadline`
|
|
- `isCompleted`
|
|
- `lastChanged`
|
|
- `uId`
|
|
- `sId`
|
|
|
|
### #Task
|
|
- `tId`
|
|
- `title`
|
|
- `description`
|
|
- `isCompleted`
|
|
- `lastChanged`
|
|
- `uId`
|
|
- `aId` |