Insight
Inspiration
Insight began with a simple problem: I wanted better academic support before submitting my university assignments.
As a student, I often knew that an essay could be improved, but I did not always know where the weaknesses were. A lecturer, tutor, or classmate might each notice something different: weak structure, unclear reasoning, missing evidence, poor flow, or an argument that did not fully answer the brief. I wanted one place where I could receive several useful perspectives before submitting my work.
That became the first version of Insight: a multi-model academic reviewer where different AI models act as a Board, each reviewing the same assignment from a different angle before their feedback is brought together into one clearer academic response.
The name Insight came from what the product was doing. It was giving me insight into my own writing: what was working, what was weak, and what I could improve.
As the project grew, that meaning expanded naturally. Insight Study gives students insight into their own course material by turning uploaded academic content into notes, practice questions, written exercises, marking, and progress history. The name now fits the whole platform rather than only one feature.
What it does
Insight is an AI-powered academic platform that supports students from assignment drafting to exam preparation.
Assignment Review
A student provides an assignment brief and an essay draft. A Board of AI models reviews the work from different perspectives, such as:
- structure and clarity;
- depth of reasoning;
- relevance to the assignment brief;
- factual accuracy;
- academic tone;
- argument quality;
- areas that need revision.
The platform then organises the feedback into a clearer, more useful review instead of leaving the student with several disconnected AI responses.
Insight Study
Insight Study extends the same idea into learning and revision.
Students create folders for modules or subjects and upload their own course materials. Insight processes those sources and uses them to create grounded study support, including:
- generated study notes;
- Multiple Choice practice;
- True or False practice;
- Match the Columns;
- Short Answer questions;
- Essay questions;
- AI marking and feedback;
- saved sessions and History;
- background preparation and marking notifications.
The questions and notes are based on the student's own uploaded material rather than a fixed curriculum. This allows Insight to support different institutions, subjects, and levels of study.
How the idea evolved
Before Insight Study, I explored a project called StudyPath.
The idea came from noticing that I could maintain a long Duolingo streak almost effortlessly, while struggling to study consistently for university. I wanted to apply the same sense of progress and engagement to personal academic material.
The original concept involved turning uploaded notes into a dynamic, Duolingo-style learning path. It was ambitious, but it introduced many product and technical questions before the core learning experience had even been proven.
Instead of forcing the first idea through, I simplified it.
The strongest part of StudyPath was not the visual path. It was the idea that students should be able to upload their own material and immediately turn it into useful learning activities. That became Insight Study.
This change made the product more focused, easier to understand, and more practical to build. The result still preserves the original goal: making studying more active and personalised without adding punishment mechanics, fixed curricula, or unnecessary complexity.
How I built it
I built Insight as a cloud-based web application because I primarily work from a low-spec laptop and often use my phone. The system needed to be accessible through a browser, deployable online, and capable of handling AI processing without depending on local hardware.
I used Codex as my implementation partner throughout development.
My role included:
- defining the product vision;
- deciding how features should behave;
- designing and refining the user experience;
- writing detailed implementation specifications;
- testing every major workflow;
- identifying bugs and regressions;
- collecting Vercel logs and Supabase database evidence;
- making product and architecture decisions;
- deciding what should be fixed, simplified, deferred, or removed;
- validating Preview deployments before Production releases.
Codex helped translate those decisions into working software by implementing architecture, database migrations, API routes, background jobs, tests, responsive interfaces, deployment workflows, and technical repairs.
The current platform uses a modern web stack including:
- Next.js;
- React;
- JavaScript;
- Supabase;
- PostgreSQL;
- Vercel;
- server-side API routes;
- authenticated and protected data access;
- multi-provider AI integration;
- background generation and marking jobs;
- automated tests and deployment checks.
The AI Board supports models from multiple providers, with different models assigned to different tasks. Fixed organiser and marker roles are used where consistency matters, while other routes allow several models to contribute independently.
Technical architecture
Insight uses a shared application shell for Assignment Review and Insight Study, while keeping their data and workflows separate.
The platform includes:
- authenticated user workspaces;
- persistent folders and versioned source material;
- private document storage;
- PDF, DOCX, TXT, and PPTX extraction;
- generated-note versioning and stale-state handling;
- durable generation and marking jobs;
- objective and written question banks;
- resumable sessions;
- saved answers and drafts;
- deterministic scoring;
- retryable failures;
- cross-mode completion notifications;
- separate model settings for Assignment Review and Insight Study;
- Preview and Production environments with separate Supabase projects.
The application was developed through Preview branches before stable commits were promoted to Production.
Challenges
Building without traditional development experience
I started this project as a student without a traditional software-development background.
That meant I had to learn how to think about:
- databases;
- authentication;
- APIs;
- background jobs;
- migrations;
- provider failures;
- testing;
- deployment;
- responsive design;
- security;
- state management;
- cost control.
The challenge was not only asking AI to create code. I had to learn how to describe expected behaviour precisely, evaluate the result, recognise when something was wrong, and provide enough evidence for the next repair.
Keeping AI work grounded and reliable
Generating content is easy compared with making it reliable.
Insight had to ensure that:
- study content came from the student's uploaded sources;
- jobs could continue after the user left the screen;
- submitted answers remained safe;
- completed marking appeared later without another provider call;
- failed jobs could be retried;
- partial data did not appear as completed work;
- provider failures did not automatically destroy the whole workflow;
- users were not charged repeatedly for the same operation.
This required persistent job records, lifecycle states, idempotency, bounded retries, and careful UI messaging.
PDF extraction
PDF extraction initially appeared to work in development but failed with real files because a required optional PDF.js canvas dependency was not bundled correctly.
The repair required changing how the runtime dependency was included so that real uploaded PDFs could be processed in the deployed environment.
Match the Columns
Match the Columns became the most difficult bug in the project.
The system successfully generated and validated a complete set of 20 questions, but the job still failed during database persistence.
The final evidence showed:
- all 20 questions passed final validation;
- the organiser returned all 20;
- persistence started;
- zero questions were saved;
- the entire transaction rolled back.
The root cause was a subtle database representation issue. Match questions serialised options: null as JSONB null, while the PostgreSQL constraint expected either SQL NULL or an array. Every Match row was rejected by constraint 23514.
The fix required a new idempotent database migration that corrected the persistence function while preserving transaction safety. After the repair, Match the Columns successfully generated, persisted, opened, scored, and appeared in History.
This challenge taught me the importance of tracing failures across the full system rather than assuming an AI model had simply produced bad output.
Preventing regressions
Fixing one problem sometimes introduced another.
Examples included:
- background notification state unexpectedly replaying an old navigation command;
- section screens redirecting to Study home after an asynchronous refetch;
- browser-native confirmation dialogs appearing instead of Insight's own UI;
- incomplete marking results appearing with a 1970 date and
null / nullscore; - cancellation working in one section but not another.
Each repair required focused tests, full-suite verification, Preview deployment, and real-device testing on both mobile and desktop.
The final release passed 436 automated tests before being deployed.
What I learned
Building Insight changed how I think about both software and AI-assisted development.
I learned that a useful AI product needs much more than a good prompt. It needs:
- reliable state;
- clear failure handling;
- persistence;
- security;
- cost boundaries;
- thoughtful user experience;
- evidence-driven debugging;
- careful deployment.
I also learned that product simplification is often more valuable than adding more features. StudyPath became stronger when I stopped trying to reproduce an entire Duolingo-style system and focused on the core value: helping students learn from their own material.
Most importantly, I learned how to work with Codex as an engineering partner rather than treating it as a one-click app generator.
The strongest results came when I:
- supplied exact requirements;
- separated product decisions from implementation decisions;
- tested real behaviour instead of trusting summaries;
- gathered logs and database records;
- challenged incorrect assumptions;
- protected stable Production code;
- used Preview environments;
- limited the scope of each repair.
Accomplishments
I am proud that Insight became a real, deployed product rather than remaining an idea or prototype.
Current accomplishments include:
- a live Production web application;
- Assignment Review and Insight Study in one platform;
- multi-model academic feedback;
- source-grounded study-note generation;
- five practice formats;
- written marking and feedback;
- durable background jobs;
- resumable sessions;
- saved History;
- global completion notifications;
- independent Preview and Production databases;
- private file storage;
- responsive mobile and desktop design;
- hundreds of automated tests;
- a real Production release built from an exact tested commit.
What is next
The next stage is focused on refinement rather than rebuilding the foundation.
Planned improvements include:
- expanding written-answer fields as students type;
- adding cancellation to Match the Columns sessions;
- refining Study History navigation;
- broader accessibility and responsive-design polishing;
- stronger cost and provider-fallback controls;
- a combined Mock Exam mode;
- continued performance and Production hardening.
A future direction is to revisit parts of the original StudyPath idea, but only where they improve learning without adding unnecessary friction or punishment mechanics.
Insight's long-term goal is to become one academic workspace that helps students understand their writing, understand their course material, practise actively, and improve before submission or assessment.
Built With
- ai
- anthropicapi
- authentication
- claude
- codex
- docx
- git
- github
- googlegemini
- gpt-5.6
- grok
- javascript
- next.js
- openaiapi
- pdf.js
- postgresql
- pptx
- react
- responsivedesign
- restapi
- rowlevelsecurity
- serverless
- supabase
- vercel
- xai
Log in or sign up for Devpost to join the conversation.