Background
Daily life needs bookmark navigation, notes and diaries, scattered across different apps. Tophoo Life brings link navigation, Markdown notes, calendar diary and user management into one lightweight web interface, with per-account data isolation.
Currently in beta: no self-registration; test accounts are created and distributed by the admin.
Features
| Module | Current capability |
|---|---|
| Authentication | Login, logout, update nickname & phone, JWT access tokens |
| User management | Admin-only; search, pagination, create, edit, enable/disable, delete |
| Link navigation | Categories, favorite links, keyword search, move up/down |
| My notes | Multiple notebook modules, independent category tree, Markdown edit/preview, table rendering, MD/PDF export |
| My diary | Month calendar, highlighted recorded dates, detail reading, immersive add/edit pages |
Design Highlights
- Data isolation: all business data is bound to user ID; the backend scopes reads/writes by the logged-in account to prevent cross-user access;
- Naming convention: singular table names (
user,website,notebook,note,diary); fields prefixed with the table name (user_id,website_name); - Auto create tables:
Base.metadata.create_all()at startup; Alembic recommended for production.
Tech Stack
- Backend: FastAPI, SQLAlchemy 2.x, Pydantic
- Database: MySQL 5.7+ / 8.0+; SQLite fallback for local experience
- Frontend: Jinja2, vanilla JavaScript, CSS
- Export: Markdown, ReportLab PDF
- Tests: pytest
Status & Roadmap
- Status: beta; accounts distributed by the admin;
- Roadmap: Alembic migrations, self-registration, full-text search & tags, mobile adaptation.
A personal tool — happy to exchange ideas: Get in touch.