From 055db8d0f06012c6578e946aec154d32a7784af1 Mon Sep 17 00:00:00 2001 From: Z8MB1E Date: Thu, 27 Aug 2026 18:36:11 -0400 Subject: [PATCH] docs(todo): refresh application roadmap Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus --- TODO.md | 53 ++++++++--------------------------------------------- 1 file changed, 8 insertions(+), 45 deletions(-) diff --git a/TODO.md b/TODO.md index 1edbbb5..557d1f5 100644 --- a/TODO.md +++ b/TODO.md @@ -1,49 +1,12 @@ -# To-Do Feature List +# Application TODOs -- [x] Personal "locker" for users – A secure space where users can store, equip, and manage their items, gear, weapons, loadout, and other personal assets. (Live at `/locker`.) - - [x] Wardrobe – A virtual representation of the user's character that can be customized with different outfits, accessories, and gear. The wardrobe should reflect the user's current loadout and inventory. - - [x] Equipment editor – A tool that allows users to modify and customize their equipment, including changing attachments, skins, and other visual elements. The editor should provide a user-friendly interface for easy adjustments. -- [x] Inventory management system – A comprehensive system that allows users to view, organize, and manage their items, including sorting, filtering, and categorizing options. (Covered by the Locker: category tabs + grid arrangement via command palette actions.) -- [ ] Item crafting and customization – A feature that enables users to craft new items or customize existing ones, allowing for unique combinations and personalization. -- [ ] Trading and marketplace – A platform where users can trade items with other players or buy/sell items in a virtual marketplace, including features like bidding, auctions, and secure transactions. It should be reminiscent of the flea market in Escape from Tarkov. Automatically generated market entries should be available for items that are not listed by users, allowing for a dynamic and evolving marketplace. - - [x] Core buy/sell marketplace - Users list items from their locker at a fixed price; buyers pay via the banking system and items transfer directly into the buyer's locker. Runs `bun run payload market-tick` to expire listings and top up auto-generated vendor entries. - - [ ] Bidding and auctions – Allow sellers to list items as auctions with timed bidding instead of fixed-price buyouts. - - [ ] Marketplace fees and market price drift – Percentage listing/sale fees and price fluctuations that tend toward each asset's resting `baseBuyPrice`/`baseSellPrice` over time. -- [x] Implement command palette – A feature that provides users with a list of available commands and allows them to execute them with a single keystroke or gesture. The command palette should be accessible from a designated keybind or gesture and should display a list of relevant commands based on the user's current context. (Implemented via `src/components/command-palette/`, mounted in the `(frontend)` layout.) -- [x] Restyle roster leader label radio buttons in PreferencesForm – The native HTML radio buttons work but look out of place; replace with shadcn RadioGroup or SegmentedControl for visual consistency. (Now uses shadcn `RadioGroup`.) +## Full Feature Additions, Top Priority -## MVP – Priority Deadline by 8/15 +- [ ] **Leadership evaluations and performance rating system** - Members of the unit should be able to rate the performance of their direct team leaders (full performance rating) and submit opinions on separate leaders (a more limited rating system for non-direct supervisors.) These ratings should appear anonymously on the leader's service record page. The ratings are divided by mission, so that they can accumulate over time to form a more accurate representation of the overall delta of a leader's performance over the course of multiple operations. These ratings appear as bars, red-to-green gradients, and percentage scores on the service record page. A small table showing the latest missions and the leader's overall rating are also visible below this bar. Additionally, leaders should be able to rate the performance of their subordinates. However, these ratings appear in a far more limited fashion on the subordinate's service record page. Instead of a breakdown with bars, percentages, latest missions, etc., they instead just get a text label indicating a summary of their performance from leadership. For example, if a subordinate is rated very highly by their leaders, their text label might say "OPERATOR PERFORMANCE LEVEL: EXCELLENT" in green text while a moderate review may say "OPERATOR PERFORMANCE LEVEL: MODERATE" in grey or blue text and a low rating might say "OPERATOR PERFORMANCE LEVEL: UNDER REVIEW" in red text. Preferably, there'd be at least 5 levels of performance instead of the 3 I used as examples. +- [ ] **Ribbon overview and listing page** - There should be a page that lists all of the medals and ribbons that could be granted to a user (excluding commendations, which could arise on the fly and are not set in stone.) This would allow users to review the requirements for earning a specific medal or ribbon, and get to see the art of that award as well, if any. +- [ ] **Editable helpdesk tickets & user voting** - Having helpdesk tickets be editable by their authors after the fact would be very helpful. This would have to be auditable, of course. In addition, allow users to upvote specific tickets would help to prioritize desired features, pressing bugs, or other tickets wherein there is a shared desire for work from the userbase. +- [ ] **"Community" navigation group** - A "Community" nav group in the sidebar with subpages like "Contacts (NPCs)", "Statistics", etc., would be really helpful for future updates wherein the players will have interactions with NPCs via the market, in general conversation, long-standing faction interactions, etc. -[!NOTE] Some pieces of this application were not implemented by this date and have been pushed to the next release. +## Desirable Additions, Medium Priority -This application must be available to my users by 8/15. The minimum viable product is defined as: - -- [x] Working authentication (login, logout, forgot password without using email) -- [x] Automatically generated profile with customization options for user on the front-end -- [ ] Full permissions and ACL system for all components - - [ ] ALL ADMIN UI access should be blocked behind a "trusted" role. (`isTrusted` helper exists in `src/utils/access-control/isRole.ts` but is not wired into any access checks yet.) - - [x] Admin UI access to the Intelligence section should be blocked behind an "intelligence" qualification. - - [x] Admin UI access to the Logistics section should be blocked behind a "logistics" qualification. - - [ ] Admin UI access to anything else should be blocked for the "admin" and "developer" roles until an explicit change by the developer at a later date. -- [ ] Proper front-end - - [x] Working dashboard (customizable layout/widgets still open) - - [ ] Customizable dashboard – let users arrange/toggle dashboard widgets. - - [x] Working profile page - - [x] Working roster page - - [x] Working intelligence pages - -### Logistics (core of the application) - -- [x] Logistics front-end - - [x] Working shipments screen - - [x] Working structures screen - - [x] Working assets screen - - [x] Working vehicles screen - - [x] Banking system - - [x] Working market screen - -### To-Dos for later -- [ ] Add division art to profiles -- [ ] Medical stat tracking -- [ ] Community hub for posting videos, screenshots, and other media -- [ ] Player decoration for a "Player of the Week" award \ No newline at end of file +- [ ] **"First obtained by" label for items** - When adding an item to the arsenal for the first time, there should be a tag or some type of text to recognize who acquired it/put it into the arsenal/resource pool for the first time. For example, if someone was the first to add a cigarette to the arsenal, in this web app it'll list who that was.