[ Case Study ]
Detachment of Florida Reporting Portal
Veterans Non-Profit·Web Apps

Overview
A passion project shaped by serving as Detachment Adjutant for the Sons of The American Legion, Detachment of Florida. Year-end reporting used to lean heavily on mailed paperwork; this portal lets squadrons that can use the technology upload official reports instead while everyone else can still fall back to traditional delivery. The service year shown across the portal advances automatically each July when the new Sons service year begins - no manual date swap once the cycle turns.
Each report type sends the uploaded file to the designated officer or committee lead for that report. The squadron submitter receives their own copy as well, so squadrons retain proof of what went in. The system standardizes filenames so every attachment clearly identifies the report type and squadron. A File Requirements Disclaimer appears before upload - it lists accepted file types, and the server accepts only those formats.
An admin area lets Detachment leadership assign multiple recipients per report when several people need to see submissions. Another admin view logs submissions with submitter and squadron details so leadership can see who has used the portal and where follow-up is still needed. It sits alongside the public floridasons.org WordPress site - same mission, purpose-built tooling for intake and routing.
Eight active year-end style report categories move through one intake pattern: validate the file, rename it for consistency, notify the right Detachment contacts, and confirm back to the squadron when appropriate so email stays readable even when addresses overlap. Messaging and headings tied to the Sons service year stay accurate because the active year rolls forward automatically each July.
Behind the scenes it uses the same discipline as other custom builds - durable configuration in PostgreSQL, staff authentication for routing changes, submission history with submitter metadata for accountability, and audit logging when settings change so volunteer leadership can operate without filing tickets with a developer.
What was shipped
Squadrons & submitters
- File Requirements Disclaimer before upload - lists accepted types; uploads enforce the same allow-list server-side
- Dedicated upload path per report type with validation and size limits
- Submitters receive a copy of what they filed when it avoids duplicate noise
- Renamed files tie squadron identity to each attachment automatically
- Service year labeling follows the July-to-June Sons cycle and updates without editing static copy
Detachment administration
- Multiple email addresses per report for shared oversight
- Submission history tab with submitter and squadron context so admins can tell who is using the portal and where reminders belong
- Active service year in admin matches the public portal and advances each July with no manual edit
- Audit trail when routing or configuration changes
File Requirements Disclaimer
Highlights
- Passion project - informed by Detachment Adjutant experience
- Year-end reporting - upload option instead of mailing paper
- Service year rolls forward automatically each July when the new Sons service year starts
- Each report routes to the designated person in charge
- Submitter receives a copy of the uploaded report
- Automatic renaming - clear filenames with squadron identification
- Admin can assign multiple recipient emails per report
- Submission tracking for admins - see who has filed (and who has not) by squadron and report
- Next.js 14, PostgreSQL, Prisma - validated uploads & persistent submission log