StudyOS
- 6 Devlogs
- 24 Total hours
StudyOS is an AI-powered student dashboard that combines Google Calendar, AI-generated daily briefings, and productivity tools into one organized workspace.
StudyOS is an AI-powered student dashboard that combines Google Calendar, AI-generated daily briefings, and productivity tools into one organized workspace.
Today I addeed a completely local AI model using Ollama. I researched local large language models and decided to integrate the Llama 3.2 3B model through Ollama.
llama3.2:3b model.ollama command by updating my system PATH.ollama serve again caused a port conflict.One of the biggest challenges was getting the backend running correctly. I accidentally tried to run server.js before creating the file, which caused a MODULE_NOT_FOUND error. After creating the server and installing the required packages, I was able to start it successfully.
Another challenge was that the AI initially hallucinated events like holidays and birthdays that weren’t actually on my calendar. To fix this, I rewrote the prompt to clearly instruct the model to only use the calendar events provided and never invent additional information.
I redesigned the AI briefing prompt so it now:
The AI summary feature now runs entirely on my own computer with:
The morning briefing is much more useful and feels like a real student assistant instead of a generic chatbot.
I focused on finishing the calendar management system for StudyOS. My goal was to make it possible to fully manage Google Calendar events without leaving the app.
The first major feature I completed was the New Event Modal. Users can now enter:
I originally built the modal using a standard HTML form, but I ran into issues where React would disconnect the form before it could submit. Instead of continuing to fight that problem, I redesigned the modal to use React state and button click handlers. This made creating events much more reliable.
After creating events worked, I added the ability to edit them.
Clicking an event now opens the same modal with all of the event information already filled in. Users can:
This required connecting the app to the Google Calendar Update and Delete API endpoints and refreshing the calendar after every change so the UI always stays up to date.
One feature I really wanted was support for multiple calendars.
Instead of always saving events in the primary calendar, the app now retrieves every calendar connected to the user’s Google account. A dropdown menu allows users to choose exactly where a new event should be saved.
Along the way I fixed several issues:
The calendar now supports:
I’m really happy with how this update turned out because the calendar has gone from being a read-only viewer to a fully functional event manager.
I focused on connecting more Google services to StudyOS and improving how calendar data is displayed.
I created a new Classroom page that automatically loads my Google Classroom courses and displays assignments from each class.
401 Unauthorized and 403 Permission Denied errors.I continued improving Gmail integration.
The calendar received several major improvements.
currentDate.This week, I worked on two of the biggest parts of StudyOS so far: the Calendar page and the Dashboard.
I started turning the Calendar page into something more useful than a simple event list. I added different views for Today, Week, and Month, making it easier to see upcoming events in different ways.
I also improved how events are displayed by adding:
These changes make the calendar feel much closer to a real productivity app.
I also redesigned the Dashboard to work more like a student command center.
One of the biggest improvements was turning the upcoming events section into a scrollable card. This keeps the dashboard clean even when there are lots of events and prevents long lists from stretching the page.
This new layout also leaves room for future dashboard widgets, such as:
Next, I plan to continue improving the Calendar page by adding:
After that, I’ll begin building more dashboard widgets to make StudyOS feel like a true all-in-one student workspace.
Today I upgraded StudyOS from a basic HTML/CSS/JavaScript project into a React (Vite) application, and then added Google Sign-In authentication. This was a major step toward turning StudyOS into a real student productivity platform instead of just a static UI.
StudyOS is designed as a Student Command Center, where students can eventually manage Gmail, Google Calendar, Drive, Classroom, and assignments all in one place.
I migrated the project into React using Vite to make it more scalable and closer to how real production apps are built.
Converted project from HTML/CSS/JS → React (Vite)
Broke UI into reusable components:
Sidebar
Header
Pages (Dashboard, Gmail, Calendar, etc.)
Implemented single-page navigation (no page reloads)
React makes it much easier to:
Manage multiple pages (like Gmail + Calendar + Drive)
Handle user login state
Build dynamic dashboards
After setting up React, I integrated Google Sign-In so users can log into StudyOS using their Google account.
Installed @react-oauth/google
Added JWT decoding to extract user info
Configured Google OAuth in React
Created login flow using Google Identity Services
Fixed OAuth issues including:
Displayed user profile after login:
Name
Profile picture
Restricted app access until user is signed in
Sidebar navigation between pages
Dashboard layout structure
Google Sign-In authentication system
User session state (logged in / logged out)
Profile display in header after login
Challenges
The biggest issue was Google OAuth configuration. I initially encountered:
Error 400: origin_mismatch
This happened because the correct localhost URLs were not added in the Google Cloud Console.
Fix
Added the following to Authorized JavaScript origins:
http://localhost:5173
After fixing this, Google Sign-In worked successfully.
Connect Google Calendar API (real events)
Connect Gmail API (inbox preview)
Connect Google Drive API (file access)
Build Assignment Workspace system
Add AI Daily Briefing (smart planning system)
Implement “Stay signed in” persistence
Improve UI with modern styling (glassmorphism + animations)
Time Spent: 45 minutes
Today I started building StudyOS, a student productivity app that combines Google Classroom, Gmail, Calendar, Drive, and other Google services into one place. My goal is to reduce the number of tabs students need to keep open and make staying organized much easier.
I spent some time deciding how I wanted the app to be organized. Instead of making another simple dashboard, I decided to build it like a Student Command Center where everything can eventually be managed from one place.
I’m really happy with the progress so far. Even though it’s only the first version, I now have a solid foundation to build on. Next I’ll start adding real functionality instead of placeholder content.