FocusForge banner

FocusForge

7 devlogs
40h 38m 52s

FocusForge is a smart study planning tool built in C++ that helps students optimize their daily study schedule based on upcoming exams, subject difficulty, and available time.
Instead of manually deciding what to study each day, FocusForge automa…

FocusForge is a smart study planning tool built in C++ that helps students optimize their daily study schedule based on upcoming exams, subject difficulty, and available time.
Instead of manually deciding what to study each day, FocusForge automatically calculates the ideal workload, tracks progress, and dynamically adjusts plans when the user falls behind.
The goal is simple: reduce stress, improve consistency, and help students stay on track with minimal effort.

This project uses AI

ChatGPT for debugging, language translations,README and help with css

Demo Repository

Loading README...

panayiotis.savva8

Shipped this project!

Hours: 2.66
Cookies: 🍪 63
Multiplier: 23.6 cookies/hr

I built FocusForge a exam tracking and AI study plan web service that organises all your upcoming and past exams you can also create a AI study plan with your own parameters like study hours per day,start time and date,breaks and many more, after creating it you can either download it or view it any time at the website or clear and create a new one,even if the AI call fails or you dont have a key no need to worry as it has a built in logic to still create your ideal plan. You can enjoy FocusForge on light or dark mode with 5 languages available on small and big screens. In the time I spend building FocusForge I learned a lot of new things like adding language translations,sign in/up via different providers and AI api calls and many more i will definitely use in my next projects. The hardest part was definitely the built in logic for study plan generation that require a lot of thinking and AI help to get the idea output, also the Google sign in was quite tricky to add along with the AI calls and prompt. Overall I am happy how it turned out and will probably update it soon with more features.

panayiotis.savva8

MINOR UPDATE
I optimized FocusForge mobile version so it’s easier to use and looking better, I also added user input validation on all fields to prevent attacks such as SQL injection and XSS. additionally I change some UI elements so its more polished and complete looking. Any suggestions or improvements are welcome :)

0
panayiotis.savva8

Shipped this project!

Hours: 37.98
Cookies: 🍪 676
Multiplier: 17.8 cookies/hr

I built FocusForge a exam tracking and AI study plan web service that organises all your upcoming and past exams you can also create a AI study plan with your own parameters like study hours per day,start time and date,breaks and many more, after creating it you can either download it or view it any time at the website or clear and create a new one,even if the AI call fails or you dont have a key no need to worry as it has a built in logic to still create your ideal plan. You can enjoy FocusForge on light or dark mode with 5 languages available on small and big screens. In the time I spend building FocusForge I learned a lot of new things like adding language translations,sign in/up via different providers and AI api calls and many more i will definitely use in my next projects. The hardest part was definitely the built in logic for study plan generation that require a lot of thinking and AI help to get the idea output, also the Google sign in was quite tricky to add along with the AI calls and prompt. Overall I am happy how it turned out and will probably update it soon with more features.

panayiotis.savva8

DEVLOG #6
Today i added a proper landing page so anyone landing on the repo immediately understands what the app does.On the UI side, I introduced dashboard stats, including total exams, next exam countdown, and completion rate. This turns the dashboard from a static list into something that actually communicates progress and status at a glance.I added a 404 page to handle broken routes cleanly, which is a small detail but makes the app feel more complete and intentional.
I also reworded the email reminder sent with a custom template instead of plain text. Finally, I implemented an AI study plan system with a local fallback algorithm, so the app can still generate structured study schedules even when external AI services are unavailable. It keeps the core feature functional no matter what.

Attachment
0
panayiotis.savva8

DEVLOG #5
Today I pushed FocusForge forward in a meaningful way. I expanded accessibility by adding full translations in Greek, Spanish, French, and Italian. This opens the product to a much wider audience and improves usability for non English users.
I also implemented Google Sign In and Sign Up. This reduces friction in the onboarding flow and makes account creation faster and more reliable. Alongside that, I fixed multiple UI and logic bugs that were affecting consistency and user experience. The interface is now cleaner, more predictable, and easier to navigate.Overall, this update focused on usability, accessibility, and stability.
Next step is to integrate AI powered study plan creation. The goal is to generate personalized plans based on user data.

0
panayiotis.savva8

DEVLOG #4
Today I made solid progress on Focus Forge. I implemented a full dark mode to improve usability in low-light environments and optimized the mobile experience for better responsiveness and layout consistency. I fixed bugs related to updating exams to ensure data integrity and a smoother user flow. I also integrated email reminders using SendGrid so users can receive timely notifications before exams. On the security side, I added input validation for username, password, and email fields to reduce risks like SQL injection, and introduced a temporary 10-minute suspension after 5 failed login attempts to protect against brute-force attacks. Next step I will add Spanish and French translations and add AI to create personalized study plans

Attachment
0
panayiotis.savva8

DEVLOG #3
Today I pushed a major update to FocusForge. I built out the full frontend and aligned the UI with a consistent design system, improving layout, spacing, and overall usability. I also fixed several bugs across authentication flows, including login and registration logic, form validation, and state handling.
Next step is to fix some bugs when trying to update an exam and then add more features like email reminders.

Attachment
Attachment
0
panayiotis.savva8

DEVLOG #2
Today i connected my SQLite database to the API properly and started handling real user data
I implemented login and register routes using Crow, added password hashing with SHA-256, and built a simple session system with tokens so users can stay logged in. It’s not perfect, but it works.
After that, I added the core feature: subjects. Users can now add subjects with difficulty, deadlines, and grades, and then fetch them through the dashboard API. Seeing actual data come back as JSON felt like a big step forward.
I also fixed a bunch of annoying bugs, mostly typos and missing includes that wasted way too much time. Setting up OpenSSL and Asio on macOS was also not fun, but it’s finally compiling and running.
Right now, the backend is stable enough to connect to the frontend. Next step is improving validation, cleaning the code, and making the UI.

Attachment
Attachment
0
panayiotis.savva8

DEVLOG #1
Today I focused on building the core backend for FocusForge, mainly the authentication system and database layer. I set up SQLite with two main tables, users and subjects, and wrote an initialization function so the database creates itself automatically on startup. This removed the need for any manual setup and made the project easier to run and deploy.
I designed structured data models for users, subjects, and sessions to keep the code organized and avoid mixing database logic with application logic. I also implemented password hashing using SHA-256, ensuring that passwords are stored securely instead of in plain text.
On the backend side, I created reusable database functions for inserting and loading users and subjects. These functions use prepared statements to prevent SQL injection and keep the code clean and scalable. I also added basic session management using an unordered map, generating a token on login to track authenticated users.
Finally, I set up a simple web server using Crow and implemented the first API endpoint for login. The flow takes a username and password, hashes the input, compares it with the stored value, and returns a session token if successful.
This stage establishes a solid backend foundation with authentication, database integration, and API handling. Next, I plan to complete registration, improve validation, and connect the frontend to the backend.

Attachment
0