The problem
Trips lived in paper, email and separate Excel files; accounting chased documents by hand and managers had no overview.
What I built
A Next.js + ASP.NET Core app where each trip moves from planned → travelling → documents → accounting review → approved or returned, with a calendar, map, dashboard and reminder emails.
Key features
- Plan a trip: destination, type, dates, people to meet and agenda
- Three required documents; once complete the trip is ready for accounting on its own
- Accounting approves or returns with history; approved trips lock
- Travel calendar, world map of trips and a cost dashboard
- Reminder emails with a 24-hour cooldown, and an Excel report
- Thai/English with Buddhist-era dates, onboarding tours and in-app release notes
Under the hood
- Admins edit SMTP settings in the app; the password is encrypted with ASP.NET Data Protection and never sent back to the browser
- n8n sends its own reminders but writes to the same send log, so both share one cooldown
- Next.js static export on IIS; email buttons deep-link to the trip, and “everyone sees, only the owner edits” is enforced in both UI and API