This website requires JavaScript.
Explore
Help
Sign In
earthjasonlin
/
mailova
Watch
1
Star
0
Fork
0
You've already forked mailova
Code
Issues
Pull Requests
Actions
Packages
Projects
Releases
Wiki
Activity
Files
5de27f1937aedfd56143b683ea8fc322c8e69575
mailova
/
app
History
Zichao Lin
5de27f1937
feat(showcase): display send_time/receive_time on personal showcase cards
2026-07-07 13:24:58 +08:00
..
locales
feat(postcard): profile country, country_from, per-user card number uniqueness, public page overhaul - Profile: add country field for default origin country - Postcard: add country_from field, auto-fill from profile.country on create - card_number uniqueness: change from global to per-user (profile_id + card_number) - Public pages: remove card_number display, only show cards with image_front - Public pages: show country as from→to format - Index page: no time display, add register button, fix lightbox with prev/next - Infinite scroll: add /api/public/cards endpoints and IntersectionObserver - Internal pages: update postcards list/detail for country_from display - i18n: add profiles.country_ph, pc_form.country_from, pc_detail.route
2026-07-07 12:32:24 +08:00
routers
fix(dashboard): sort recent activity by updated_at so delivered/received cards also appear
2026-07-07 13:23:39 +08:00
static
chore: stage changes before history rewrite
2026-07-07 11:28:18 +08:00
templates
feat(showcase): display send_time/receive_time on personal showcase cards
2026-07-07 13:24:58 +08:00
__init__.py
feat: initial postcard manager - FastAPI + Jinja2 + SQLite
2026-07-05 16:06:03 +08:00
auth.py
fix(auth): set session expires_at to non-nullable with 1 year max
2026-07-05 23:21:54 +08:00
config.py
feat: initial postcard manager - FastAPI + Jinja2 + SQLite
2026-07-05 16:06:03 +08:00
database.py
feat: initial postcard manager - FastAPI + Jinja2 + SQLite
2026-07-05 16:06:03 +08:00
i18n.py
refactor(i18n): move translations to JSON files under app/locales, dynamic language switch
2026-07-07 09:46:50 +08:00
main.py
feat(api): add public RESTful API with API key auth and documentation page
2026-07-07 09:22:11 +08:00
models.py
feat(postcard): profile country, country_from, per-user card number uniqueness, public page overhaul - Profile: add country field for default origin country - Postcard: add country_from field, auto-fill from profile.country on create - card_number uniqueness: change from global to per-user (profile_id + card_number) - Public pages: remove card_number display, only show cards with image_front - Public pages: show country as from→to format - Index page: no time display, add register button, fix lightbox with prev/next - Infinite scroll: add /api/public/cards endpoints and IntersectionObserver - Internal pages: update postcards list/detail for country_from display - i18n: add profiles.country_ph, pc_form.country_from, pc_detail.route
2026-07-07 12:32:24 +08:00
schemas.py
feat(postcard): profile country, country_from, per-user card number uniqueness, public page overhaul - Profile: add country field for default origin country - Postcard: add country_from field, auto-fill from profile.country on create - card_number uniqueness: change from global to per-user (profile_id + card_number) - Public pages: remove card_number display, only show cards with image_front - Public pages: show country as from→to format - Index page: no time display, add register button, fix lightbox with prev/next - Infinite scroll: add /api/public/cards endpoints and IntersectionObserver - Internal pages: update postcards list/detail for country_from display - i18n: add profiles.country_ph, pc_form.country_from, pc_detail.route
2026-07-07 12:32:24 +08:00