Jot it daily. Hand it in weekly. A work journal for interns: log each day in under a minute, and Jotern turns your daily logs into weekly summaries and a report outline in your school's format.
Status: in development. v1 is due on 2026-10-08 as my end-of-internship project; the app keeps growing after that.
- Log each day: what I did, time spent, tags, difficulties, how I solved them, what I learned
- See a week: entries by day, total time, time by tag
- Export a week to Markdown
- Build the report outline from your daily logs, using a general report template (v1 ships the ENSPD one)
- A dashboard on the Today page: hours this week, days logged in a row, time by tag, latest difficulties
- Runs entirely on your laptop, no internet needed: your entries stay in your browser
Coming later: a backend (an API and a database), a supervisor's side and a shared space (submitted weeks, comments, meeting requests), school tutor and organisation admin roles, dashboards for every role, an installable app that syncs.
v1 is a frontend-only Angular app: no server, no database. The entries are kept in the browser's localStorage on your laptop.
flowchart LR
UI["Pages<br/>Today · Week · Report · Setup"] --> ST["Entries store<br/>(Angular service, signals)"] --> LS[("localStorage")]
UI -. "exports" .-> MD["Markdown files"]
| Part | Stack |
|---|---|
App (web/) |
Angular, TypeScript, HTML, CSS |
| Data | The browser's localStorage |
- Node.js LTS (see
.nvmrc; with nvm:nvm use)
git clone https://github.com/angelanang/jotern.git
cd jotern/web
npm install
npm startThen open http://localhost:4200.
web/ Angular app (TypeScript)
docs/
uml/ UML diagrams (Gaphor files and exports)
design/ Figma exports, the prototype link and the brand kit
main: the app, written by hand.ai-made: an earlier AI-assisted version of the interface, kept for reference; not maintained.
- Figma prototype: To Figma
- UML diagrams:
docs/uml/ - Brand kit:
docs/design/brand/
Designed in Figma and modeled in UML before coding. All of the app's code on main is written by hand; CLI-generated code (ng new, ng generate) is committed with a Generated-by: scaffold trailer so it stays out of the count. The documentation and design files in docs/ are not counted.
Find me on GitHub
MIT © 2026 Angela Nang. The licence covers the code; the Jotern name and the brand kit in docs/design/brand/ aren't included.
