Key Features Implemented
Google account authentication with separately authorised Calendar access
Upcoming Google Calendar event viewing and event creation
Prioritised to-do lists with creation, editing, completion and deletion
Daily time logging with daily totals and weekly summaries
Configurable payday-based monthly budget periods
One-off and recurring income and expense tracking
Payment editing, deletion and paid/unpaid status tracking
Balance and outstanding-expense summaries
Desktop payment calendar and mobile weekly budget navigation
Optional modules that can be independently enabled or hidden
Persistent dark-green and warm-light themes
Account, module, appearance and budget settings
Server and Google Calendar connection monitoring
Calendar reauthentication guidance when access requires attention
Responsive desktop and mobile layouts
Early-stage meal-planning area with personal PCOS reference notes
Secure server-side sessions and persistent user data
Encrypted stored Google tokens, trusted-origin checks and rate limiting
Technical Details
Frontend (React TypeScript)
Framework: React 19 with TypeScript
Styling: Bootstrap 5, React Bootstrap, and custom CSS
State Management: React Context for authentication, with component-level React hooks for feature state
HTTP Client: Axios with credential-aware API requests
Authentication: Google OpenID Connect with server-managed sessions
Google Integration: Google Calendar API for viewing and creating events
Preferences: Persistent module, theme and budget settings
Accessibility: Semantic HTML, keyboard-accessible controls, focus states and responsive navigation
Backend (Node.js Express)
Runtime: Node.js with Express.js
Database: MongoDB with Mongoose models
API: Feature-based REST endpoints for authentication, calendars, to-dos, time logs and budgeting
Authentication: Google OpenID Connect authorisation-code flow with PKCE, state and nonce validation
Sessions: Express-session with custom MongoDB-backed session storage and rolling expiry
Security: Helmet security headers, restricted CORS origins, trusted-origin validation, HTTP-only cookies, request-size limits and API rate limiting
Architecture Pattern
RESTful API: Express routes and database models organised by application feature
Component-based UI: Reusable React components with dedicated feature pages
Separation of Concerns: Authentication, middleware, routes, models, helpers, contexts and styles kept in separate layers
Persistent Data: Tasks, time logs, budget records, account preferences and sessions stored in MongoDB
User Data Isolation: Authenticated API operations scoped to the current user
Modular Interface: Optional application modules controlled through persistent account preferences
Responsive Design: Separate desktop and mobile interactions where each layout requires a different workflow