InternPal
AI internship tracker and journal
Workspace for interns: an application pipeline, a daily journal with Gemini writing help, and exports in the CTU OJT report format.
- Role
- Full-stack developer
- When
- May 2026
- Stack
- React
- TypeScript
- Express
- Supabase
- Gemini API
- jsPDF
Real interface, recorded on sample data. Names and figures shown are fictional.
The problem
Interns log daily work, hours and evidence, then retype it into weekly reports and their school's OJT forms. The writing is the slow part, and AI that invents details can't be trusted on a signed form.
How it was built
- Applications tracked in Kanban, list and journey views, with drag and drop.
- A journal that ties entries, hours, photos and notes to each internship.
- Gemini rewrites entries in four modes (improve, expand, professional, summarize), with prompts that forbid inventing events and keep the intern's own voice. The original comes back alongside for comparison.
- Weekly and whole-internship summaries generated strictly from the logged entries.
- CTU OJT Form 6 compiled by Gemini into strict JSON, validated and trimmed to the form's limits, then drawn onto the A4 template with jsPDF.
Log
Daily entry with hours and tags
EnhanceGemini
Rewrite without inventing events
SummarizeGemini
Weekly summary from the entries only
CompileGemini
Form 6 bullets as strict JSON
Validate
Trimmed to the form's limits
Export
Drawn onto the A4 template
Where it landed
A Vite and React frontend with an Express API on Supabase, including realtime group leaderboards.





