Important
One Calendar App to rule them all, One Calendar App to find them; One Calendar App to bring them all and in the darkness bind them.
This is my final calendar project, i.e. I plan to continue working on it over the years and turn it into a calendar-journaling-note system that I would actually like to use.
I named it "Three Phase Calendar", because the foundational idea behind this project is that it it is supposed to be modal - i.e. the user has access to three modes or views, a calendar mode, a planner/tasklist mode, and a journal mode. The journal mode is supposed to be relatively freeform, whereas calendar mode - rigid and structured. The idea behind the "planner/tasklist" is something sorta inbetween, allowing the users to be able to view their plans in different formats or work with their preferred one on a given day.
-
Dockerize your app properly -
Also integrate Minikube (optional?) -
Basic HTTP server functionality. -
Basic internal TaskEvent data handling. -
Basic postgres database & connectivity setup. -
TaskEvent database-side implementation. -
HTTP query parameters/Filter implementation. -
GET TaskEvent by ID request. -
POST TaskEvent. -
DELETE TaskEvent. -
PUT TaskEvent (difficulty? easy peasy). - PATCH TaskEvent (difficulty? lemon squezy (not easy)).
-
Integrate event types (static
,history
,routine
) -
created_at
&updated_at
adder functions. -
updated_at
triggers. -
Implement PeriodEvent & TextEvent tables. -
Refactor "route"s to be "router"s instead. - Decouple database interfacing for routers from DBConnProvider (bridge or proxy of some kind)
- GET PeriodEvent.
- POST PeriodEvent.
- PUT PeriodEvent.
- DELETE PeriodEvent.
- GET TextEvent.
- POST TextEvent.
- PUT TextEvent.
- DELETE TextEvent.
- Make the QueryParam "validator strings" actually do something.
- Basic user & "calendarspace" implementation (to separate events from each separate user & their calendar/journal/planner).
- ForeignKey relation + GET all user/calendar events.
- User authentication with JWT, bcrypt password encryption and OAuth 2.0.
- Server-side database schema initialization and validation (possibly future migration features?).
- postgres role for division of database access permissions.
- Substitute
HttpServer
withHttpsServer
(#5). -
#4
-
Basic calendar component structure (vCalendar dead project reimplementation). -
Independent web app build. (Makefile or git subsomething?) - Refactor BigCalendar.
- (OPTIONAL) Move most of the complex date handling to Rust "middleend".
- Implement a dark/light mode toggle.
- Implement the three modes (calendar, planner, journal; could replace Home, Tasks and About views with these).
- Make Rust "middleend" be able to talk to the appropriate backend server.
- Basic event fetching.
- Refurbish calendar styling.
- A settings popup/page.
- Event object positioning & styling.
- Event creation forms.
- Journal prototype implenentation.
- Planner prototype implementation.
- User authentication GUI.
-
Integrate ncurses and libcurl into the build. -
Implement day-of-the-week, monthday and hour label windows. - Implement weekday windows.
- Implement Vim motions for navigating the calendar.
- Implement libcurl data fetching.
- Read only journal.
Chief Enterprise Officer: deceased
Chief Technology Officer: me but teal
Product Manager: me but orange
Frontend Software Engineer: me but pink and purple
Backend Software Engineer: me but purple
Site Reliability Engineer: me but gray
Quality Assurance Tester: me but pink
UI/UX Designer: me but blue and pink
Home Barista Maid: me but blue
Scrum Master: deceased
Agile Coach: deceased
Recruitment Manager: we don't need this guy.