Repository navigation
v3.13.0 — Mobile pass, a start page that leads with your boards, and a suggestion form
A pass over every screen a student or owner touches, built for the phone first: a start page that leads with your boards, a board and course page with one action each, a suggestion form that works without a mail app, and an operator dashboard that fits a 360px screen. One migration — see "Before you deploy".
Start page and new boards
- Your boards first. A browser that manages a board now opens
/starton "Your boards": each board with where it stands ("1 course · no files yet"), Remove in a ⋯ menu, and "New board" under the list. A first visit still opens on the create form. Boards deleted since drop out instead of linking to a missing page. - "Your class", not "Board name". One board for the whole class, with each course inside it. Asked for a board name, people typed a single subject and had nowhere to put courses.
- Straight to the first course. The receipt says "Add your first course", the new board opens the New course panel, and saving a course goes into it to upload.
- A lighter receipt. One red label instead of three, Copy inside the share-link box, a flat disabled Continue.
- Find by name and owner-link recovery are a line of links; the name field opens in place.
Board page
- The title wraps instead of truncating, and "New course" floats in the thumb zone on phones.
- Owner · Exit sits in the top row; the share row is one Share button (the phone's share sheet, WhatsApp included) plus QR. On a computer Share copies the link.
- Blue means tap. Course codes are ink; file counts are a quiet line ("9 files · updated 2h ago").
- "Add the first file" on an owner's empty course opens it with the upload form up.
- Reorder hides behind a toggle; search and sort appear from 7 courses.
- Classmates get the wordmark home and "Run a class of your own? Make a board".
Course page
- No section pills. Files are already grouped under section headings with counts; search and sort appear from 7 files.
- Select files reveals checkboxes for bulk delete; single delete is in a ⋯ menu, away from Download.
- Titles wrap to two lines on phones, type badges share one width, "Download all" is grey.
- The upload form is a drop area, three section pills, and the two optional fields on one row.
Storage
A board 90% full says so in a box above the list — for owners "delete old files to make room", for everyone else "new uploads may not fit". The small meter steps aside then.
Suggest a feature
- A form, not mailto. "Suggest a feature" in the app footer, and "Tell us" on the owner card, open a short form: a message and an optional email or WhatsApp for a reply. Most students have no mail app set up, so "Email us" opened nothing.
- Stored and pinged. Each message is saved and posted to the operator's Telegram when configured. No IP is stored; the page is kept as a path only, so an
?owner=link never is. Five per hour per source, plus a spam trap. - Operator → Suggestions tab, newest first, with delete.
- The owner card shows only to owners of boards with 5+ files.
- Privacy page lists suggestions and their Telegram ping.
Operator dashboard
- Login matches
/start: centred, with the mark. - Header no longer pins over the lists; empty tabs are one line; "At a glance" shows on the landing tab only.
- Mobile: all five tabs fit a 360px screen, board rows are tappable whole, tiles are tighter, the ambassador form stacks.
Also
- Clipped titles keep the tails of g, y and p.
- 44px tap targets on touch for the small links and menu items.
DemoSeedermakes five local boards in every state the UI handles:php artisan db:seed --class=DemoSeeder.
Before you deploy
Run migrations. A new suggestions table.
Nothing new in .env. FEEDBACK_WHATSAPP and FEEDBACK_EMAIL are no longer used by the app's feedback prompt (the landing page still reads them). Suggestions reach you on Telegram if TELEGRAM_BOT_TOKEN and TELEGRAM_CHAT_ID are set, and always in Operator → Suggestions.
205 tests.