DEV Community

Mayank Bisht
Mayank Bisht

Posted on

Organize Me - Turning Student Chaos into a Plan with Gemma

Hacktoberfest Weekend Challenge: Build for a Friend Submission 🀝

This is a submission for the Hacktoberfest Weekend Challenge: Build for a Friend

What I Built

I built Organize Me, a local AI-powered day planner for myself and my engineering friend circle.

As engineering students, it can be difficult to keep track of everything happening at once β€” assignments, projects, exams, coding practice, college work, and deadlines. It's easy to know what needs to be done but much harder to organize everything into a manageable plan.

Organize Me lets us describe what we need to accomplish in natural language, and the AI turns it into a structured list of tasks with descriptions, estimated durations, and deadlines.

For example, instead of manually creating several tasks for an upcoming exam, we can simply say:

"I have a science exam in two days and need to prepare for it."

The AI breaks that into actionable tasks that can then be tracked through the application.

Users can also:

Mark tasks as complete or incomplete
Delete tasks
View all their planned tasks
Keep their tasks saved between sessions

The main goal was to build something that my friends and I could actually use during college, rather than just building another demo application. --

Demo

Code

The complete source code is available on GitHub:

Day Planner

A simple productivity app for turning a natural-language description of your day into actionable tasks. Review tasks, track their duration and deadline, run a focus timer, and mark work complete as you go.

Features

  • AI Planner: Send a planning prompt to the backend and add the generated tasks to your list.
  • My Tasks: Fetch, review, complete, and delete tasks.
  • Task details: See descriptions, durations, and deadlines.
  • Focus timer: Start, pause, and reset a countdown for tasks that have a duration.
  • Responsive interface: Use the planner on desktop or smaller screens.

Project structure

.
β”œβ”€β”€ backend/     # FastAPI API, SQLite database, and AI service integration
└── frontend/    # React 19 app built with Vite

Requirements

  • Python 3.10 or later
  • Node.js and npm
  • A local LLM server available at http://127.0.0.1:8081 with a /completion endpoint that accepts the llama.cpp completion request format and returns generated text in a content field

The…

How I Built It

I built Organize Me using a React frontend, FastAPI backend, SQLite database, and Gemma running locally through llama.cpp.
The basic architecture is:

React β†’ FastAPI β†’ SQLite + Local Gemma

The React frontend provides the planner and task-management interface.

The FastAPI backend handles API requests, task management, database operations, and communication with the AI model.

SQLite is used to persist the tasks.

For the AI functionality, I used Gemma, running locally through llama.cpp. When a user describes what they need to accomplish, the backend sends the request to Gemma with instructions to return structured JSON containing the tasks, descriptions, estimated durations, and deadlines.

The backend then processes that response and stores the generated tasks in SQLite.

One of the important parts of the project was making the AI output predictable enough for the application to consume. Instead of simply displaying the model's response as text, I instructed Gemma to return a specific JSON structure that the backend could process.

Why Does Open Innovation Matter?

Open innovation made it possible for me to build the core AI functionality without depending on a paid external AI API.

Because Gemma is an open-weight model and can run locally through llama.cpp, the application can process planning information locally instead of sending it to a third-party AI service.

This gives the project several advantages:

Privacy β€” personal tasks and plans don't need to be sent to an external AI API.
Control β€” I can control the model, prompts, and output format.
No per-request API cost β€” the AI runs locally once the model is downloaded.
Experimentation β€” I can modify and experiment with the AI integration without being tied to a specific hosted API.

For a personal productivity application, having an AI assistant that can run locally makes open-weight models a particularly interesting option.

Prize Categories

Best Use of Gemma β€” Gemma is used as the core AI model that converts natural-language planning requests into structured tasks.

What I Learned

Building Organize Me taught me much more than just integrating an AI model.

I learned how to connect a React frontend with a FastAPI backend and build a complete flow from a user's natural-language request to AI-generated structured data stored in a database.

I also learned how to run an open-weight model locally using llama.cpp, communicate with it through an HTTP API, and design prompts that make the model return predictable JSON that my application can actually use.

On the backend side, I got more practical experience with FastAPI, SQLAlchemy, SQLite, CORS, API endpoints, and handling the gap between an AI model's output and the structured data expected by an application.

Most importantly, I learned that building an AI application isn't just about calling a model. The real challenge is connecting the model reliably with the rest of the software system and designing the application around it

Top comments (0)