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 view their plans in different formats or work with their preferred one on a given day.
-
Dockerize your app properly -
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_atadder functions. -
updated_attriggers. -
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) -
Another stupid rework of Task and Timeblock schema. -
GET PeriodEvent. -
POST PeriodEvent. -
PUT PeriodEvent. -
DELETE PeriodEvent. - PUT 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 /api/login?id={user_id} returning user's entire calendarspace. -
For the love of all that lives, breathes and hates, please do your JWT token verification properly now that it works. - GET TextEvent.
- POST TextEvent.
- DELETE TextEvent.
- PATCH TextEvent
-
Basic user login with no auth. -
User authentication with JWT, bcrypt password encryption and OAuth 2.0. - openssl keygen bash script
-
Server-side database schema initialization and validation (possibly future migration features?). - postgres role for division of database access permissions.
- [-]
SubstituteHttpServerwithHttpsServer(#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 a basic "casing" for calendar mode. -
Make Rust "middleend" be able to talk to the appropriate backend server. -
Make Rust backend and Vue learn how to talk to each other about JWT tokens and user id handling in requests. -
Wire up all event creation, fetching and deletion methods -
Correct the wiring between calendarspace and actual events (and make API server verify tokens) -
Make events renderable as they should be.
-
Make rendered events be fully functional and additionally clickable.
-
Event popup with the editing and PUT/PATCH part. -
Events don't collide with each other and extend on the right Vue div box when they last more than 1 day.
-
Implement a basic "casing" for planner mode. -
Implement a basic "casing" for journal mode. -
Planner mode and Journal mode can into calendarspace.
-
Journal prototype implenentation.
-
Planner prototype implementation.
-
Much to your horror, run
npm tauri run android devand figure out how to thus make it at least not immediately present itself as a nightmare that it will come out as with nothing currently done with phones in mind. -
Refurbish calendar styling.
-
A settings popup/page.
-
Make the dark/light mode toggle alter styling.
-
Event creation forms. -
User authentication GUI.
- Small steps: make new branch and manually insert beginning data
- Tables for: notebook scan blobs, Markdown study notes, categories
- Basic tpc GUI integration
- Image blobs are viewable
- Image blobs are scrollable & zoomable
- You can select areas of image blobs...
- ...and save notes or organizational data on selected areas.
- Markdown note format reuses code of custom implementation from tpc Journal mode (ofc, first we must make it work lol)
-
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.