How shashankshekhar1672007-oss/cubicnotes works
CubicNotes is a personal knowledge and productivity workspace. Users enter through the React app, browse notes or notebook documents, manage tasks and reminders, and reach results through the frontend API client and Express controllers, which persist application data in MongoDB. Authentication supports verified email registration and Google login; guest mode gates writes. The README also documents Gemini writing tools, Calendar sync, push alerts, dashboard analytics, and trash retention. Some feature wiring is documented but its implementation was not sampled, so those links are shown at subsystem level.
Main entry points: server.js Express server · App.jsx React app · api.js API client · authController.js Authentication
Components 33
Workspace client
- React app
frontend/src/App.jsx - Notes view
frontend/src/pages/NotesPage.jsx - Notebook workspace
frontend/src/pages/NotebookWorkspace.jsx - Tasks view
frontend/src/pages/TasksPage.jsx - Reminders view
frontend/src/pages/RemindersPage.jsx - Dashboard
frontend/src/pages/Dashboard.jsx - Settings view
frontend/src/pages/SettingsPage.jsx - Trash view
frontend/src/pages/TrashBinPage.jsx - API client
frontend/src/services/api.js - Auth and guest state
frontend/src/context/AuthContext.jsx - Login view
frontend/src/pages/Login.jsx
Knowledge workspace
- Notes and pages API
backend/controllers/noteController.js - Notebook API
backend/controllers/notebookController.js - Document pages API
backend/controllers/pageController.js - Search API
backend/controllers/searchController.js
Productivity services
- Task API
backend/controllers/taskController.js - Reminder API
backend/controllers/reminderController.js - Gemini assistant
backend/controllers/aiController.js - Notifications API
backend/controllers/notificationController.js - Calendar integration
backend/utils/googleCalendar.js - Push configuration
backend/config/webPush.js
Identity and access
- Auth routes
backend/routes/authRoutes.js - Authentication
backend/controllers/authController.js - Auth guard
backend/middleware/authMiddleware.js - Email sender
backend/utils/sendEmail.js
Backend foundation
- Express server
backend/server.js - Scheduled jobs
backend/workers
Other components
- User
- MongoDB
- Gemini API
- Google Calendar
- Email delivery
- Browser push
Connections 47
- User → React app: uses
- React app → Notes view: routes to
- React app → Notebook workspace: routes to
- React app → Tasks view: routes to
- React app → Reminders view: routes to
- React app → Dashboard: routes to
- React app → Settings view: routes to
- React app → Trash view: routes to
- React app → Login view: routes to
- Login view → Auth and guest state: updates session
- Notes view → API client: requests data
- Notebook workspace → API client: requests data
- Tasks view → API client: requests data
- Reminders view → API client: requests data
- Dashboard → API client: requests data
- Settings view → API client: requests data
- Trash view → API client: requests data
- API client → Express server: HTTP requests
- Express server → Auth routes: mounts routes
- Express server → Notes and pages API: mounts routes
- Express server → Notebook API: mounts routes
- Express server → Document pages API: mounts routes
- Express server → Task API: mounts routes
- Express server → Reminder API: mounts routes
- Express server → Gemini assistant: mounts routes
- Express server → Search API: mounts routes
- Express server → Notifications API: mounts routes
- Auth routes → Auth guard: protects routes
- Auth routes → Authentication: dispatches
- Authentication → Email sender: sends OTP
- Email sender → Email delivery: delivers mail
- Authentication → Calendar integration: starts OAuth
- Calendar integration → Google Calendar: syncs events
- Authentication → MongoDB: reads and writes
- Notes and pages API → MongoDB: reads and writes
- Notebook API → MongoDB: reads and writes
- Document pages API → MongoDB: reads and writes
- Task API → MongoDB: reads and writes
- Reminder API → MongoDB: reads and writes
- Gemini assistant → MongoDB: reads user settings
- Gemini assistant → Gemini API: generates text
- Search API → MongoDB: searches records
- Notifications API → MongoDB: stores subscriptions
- Notifications API → Push configuration: dispatches push
- Push configuration → Browser push: sends alerts
- Express server → Scheduled jobs: starts jobs
- Scheduled jobs → MongoDB: maintains records