DEV BUILD (branch: master) - NOT FOR PUBLIC USE
 

Check out our latest Fleet Action!

 

Engineering Office Report #3 – v3.0.1 Release

March 15, 2024

A couple months ago, BFMS v3.0.0 went live, streamlining the member experience around Intelligence and Security functions such as Commands, Characters and Gaming Submissions. I am pleased to announce that BFMS 3.0.1 just went live a few minutes ago, finishing that transformation and replacing all remaining backend member functions with a new frontend experience, including competitions, OCS requests, operations functions, and JAG reports. In addition, this release also streamlines several major workflows, such as unifying command and RPG proposals and adding a new competition submission review system for competition hosts to review and pick their winners.

When I first shared the Engineering Office’s “Vision for the Future”, I laid out four key objectives for 2024:

  1. Ensure our systems remain stable, performant and secure
  2. Improve the experience and intuitiveness of BFMS for our members
  3. Evolve existing systems and add new systems to continue to support our growth
  4. Communicate transparently what we are doing within the Engineering Office

Over the last quarter, we have focused predominantly on #1 and #2, making significant changes in terms of performance, stability and intuitiveness. Heavy pages load up to 80% faster, and the member experience is now isolated from the WordPress engine that underlies our system. But that said, there’s far more than engine upgrades and fresh paint in our future…

Specifically, BFMS v3.1, our next release targeted for late spring, will introduce a brand new system, Fleet Assets, which will reshape progression and increase agency for our members as they engage with all the Fleet has to offer. If you’re not sure what I’m talking about, I encourage you to check out the 2024 Roadmap where Vince shared more details about what is to come here.

And then, beyond BFMS v3.1, you can look forward to improvements and overhauls to many of our other core systems. We have big plans as it relates to cross-command collaborative writing, native support for different competition types, and streamlining the new member join process, among others… and who knows, maybe there’s even a future where you can have a primary character that is aligned with another major power besides the Federation.

But enough talk of the future for now. Below, you will find the patch notes of updates as it relates to the latest release of BFMS that just went live today, and as always, if you encounter any issues, do not hesitate to reach out to the Engineering Office.

BFMS v3.0.1 Patch Notes

Competitions

  1. A frontend interface has been introduced for proposing and managing competitions, and the backend interface has been removed.
  2. A frontend interface has been introduced for competition submissions, including not just the form but also the competition prompt, and the backend interface has been removed. To participate in a competition, members should now access the competition through the frontend and then press “Enter Competition”.
  3. A restriction has been added that prevents multiple submissions to the same competition. Competition entries can be edited by returning to the competition’s page. Editing a timed competition will cause its submission date to advance to the time of the latest edit.
  4. A frontend interface has been added for a competition manager to select the winners of a competition when it is complete, including the ability to review submissions while doing the selection.
  5. The frontend interface for managing competitions now highlights those competitions that are complete and awaiting winner selection. Competition hosts should consult this page regularly to ensure that competition winner selection occurs in a timely manner.
  6. The navigation menu now includes a notification under Competitions when there are competitions you are administering that have been completed but to which you have not yet assigned winners.

Commands

  1. Members no longer need to submit a separate Game Proposal for an RPG. The RPG proposal fields are now part of the Command Proposal when submitting a proposal for a Command that will serve as an RPG.
  2. The navigation menu now includes a notification under Commands when there are characters that have been assigned to your command but that you have not yet added to your manifest.

Membership

  1. A frontend interface has been introduced for managing member profiles, and the backend interface has been removed.
  2. The system-level restriction on primary character selection has been removed due to specific nuances with collaborative writing. Members are still responsible for complying with Bravo Fleet policies related to their primary character, and once the new collaborative writing features are added, this restriction will be reinstituted.
  3. The “Not a Bot” question during registration has been updated to require the prospective member to join Discord to get the answer.

Other Frontends

  1. A frontend interface has been introduced for submitting transfer requests and viewing past transfers, and the backend interface has been removed.
  2. A frontend interface has been introduced for submitting mentor requests, and the backend interface has been removed.
  3. A frontend interface has been introduced for submitting JAG complaints, and the backend interface has been removed.

Bug Fixes and Quality of Life Changes

  1. The menu has been rewritten and split between navigation and administration for those users that also have departmental responsibilities.
  2. The menu no longer shows categories with no items under them.
  3. Sandboxes have been added to the Roleplaying Games tab to make it easier to find all collaborative writing opportunities in a single place.
  4. Publishing commands without any associated characters will no longer trigger an error with character publishing.
  5. Editing a mission title will now appropriately change the title in all places that the mission is shown.
  6. Relay Station Bravo is no longer mentioned in the welcome message.
  7. Missing date/time fields will no longer cause errors on select pages.
  8. Pagination of news categories has been fixed.
  9. The user profile will no longer show an error for users with specific legacy data objects.

Load Time: 0.48 seconds

Total SQL Queries: 46

1 SELECT wp_posts.* FROM wp_posts WHERE 1=1 AND wp_posts.post_name = 'engineering-office-report-3-v3-0-1-release' AND wp_posts.post_type = 'group_news' ORDER BY wp_posts.post_date DESC
1 SELECT post_id, meta_key, meta_value FROM wp_postmeta WHERE post_id IN (34811) ORDER BY meta_id ASC
1 SELECT * FROM wp_posts WHERE ID = 141639 LIMIT 1
1 SELECT * FROM wp_posts WHERE ID = 141740 LIMIT 1
1 SELECT post_id, meta_key, meta_value FROM wp_postmeta WHERE post_id IN (141631) ORDER BY meta_id ASC
1 SELECT * FROM wp_posts WHERE ID = 141632 LIMIT 1
1 SELECT post_id, meta_key, meta_value FROM wp_postmeta WHERE post_id IN (141632) ORDER BY meta_id ASC
1 SELECT post_id, meta_key, meta_value FROM wp_postmeta WHERE post_id IN (94767) ORDER BY meta_id ASC
1 SELECT * FROM wp_posts WHERE ID = 94776 LIMIT 1
1 SELECT post_id, meta_key, meta_value FROM wp_postmeta WHERE post_id IN (94776) ORDER BY meta_id ASC
1 SELECT wp_posts.ID FROM wp_posts WHERE 1=1 AND wp_posts.post_type = 'group_news' AND ((wp_posts.post_status = 'publish')) ORDER BY wp_posts.post_date DESC LIMIT 0, 2
1 SELECT post_id, meta_key, meta_value FROM wp_postmeta WHERE post_id IN (18311) ORDER BY meta_id ASC
1 SELECT wp_posts.* FROM wp_posts WHERE ID IN (140922,140618)
1 SELECT t.*, tt.*, tr.object_id FROM wp_terms AS t INNER JOIN wp_term_taxonomy AS tt ON t.term_id = tt.term_id INNER JOIN wp_term_relationships AS tr ON tr.term_taxonomy_id = tt.term_taxonomy_id WHERE tt.taxonomy IN ('group_news_category') AND tr.object_id IN (140618, 140922) ORDER BY t.name ASC
1 SELECT post_id, meta_key, meta_value FROM wp_postmeta WHERE post_id IN (140618,140922) ORDER BY meta_id ASC
1 SELECT wp_posts.ID FROM wp_posts INNER JOIN wp_postmeta ON ( wp_posts.ID = wp_postmeta.post_id ) INNER JOIN wp_postmeta AS mt1 ON ( wp_posts.ID = mt1.post_id ) WHERE 1=1 AND ( ( wp_postmeta.meta_key = 'event_status' AND wp_postmeta.meta_value = 'In Progress' ) AND ( mt1.meta_key = 'event_type' AND mt1.meta_value = 'fleet_action' ) ) AND wp_posts.post_type = 'events' AND ((wp_posts.post_status = 'publish')) GROUP BY wp_posts.ID ORDER BY wp_posts.post_title DESC LIMIT 0, 1
1 SELECT wp_posts.* FROM wp_posts WHERE ID IN (122202)
1 SELECT post_id, meta_key, meta_value FROM wp_postmeta WHERE post_id IN (122202) ORDER BY meta_id ASC
1 SELECT * FROM wp_posts WHERE ID = 13085 LIMIT 1
1 SELECT * FROM wp_posts WHERE ID = 86412 LIMIT 1
1 SELECT ID, post_name, post_parent, post_type FROM wp_posts WHERE post_name IN ('donate') AND post_type IN ('page','attachment')
1 SELECT * FROM wp_posts WHERE ID = 141631 LIMIT 1
1 SELECT wp_posts.* FROM wp_posts WHERE ID IN (18311)
1 SELECT t.*, tt.*, tr.object_id FROM wp_terms AS t INNER JOIN wp_term_taxonomy AS tt ON t.term_id = tt.term_id INNER JOIN wp_term_relationships AS tr ON tr.term_taxonomy_id = tt.term_taxonomy_id WHERE tt.taxonomy IN ('group_news_category') AND tr.object_id IN (102360) ORDER BY t.name ASC
1 SELECT post_id, meta_key, meta_value FROM wp_postmeta WHERE post_id IN (35402) ORDER BY meta_id ASC
1 SELECT post_id, meta_key, meta_value FROM wp_postmeta WHERE post_id IN (102360) ORDER BY meta_id ASC
1 SELECT * FROM wp_users WHERE ID = '1' LIMIT 1
1 SELECT user_id, meta_key, meta_value FROM wp_usermeta WHERE user_id IN (1) ORDER BY umeta_id ASC
1 SELECT wp_posts.* FROM wp_posts INNER JOIN wp_postmeta ON ( wp_posts.ID = wp_postmeta.post_id ) WHERE 1=1 AND ( ( wp_postmeta.meta_key = 'promoted_user' AND wp_postmeta.meta_value = '1' ) ) AND wp_posts.post_type = 'user_rank_assignment' AND ((wp_posts.post_status = 'publish')) GROUP BY wp_posts.ID ORDER BY wp_posts.post_date DESC
1 SELECT post_id, meta_key, meta_value FROM wp_postmeta WHERE post_id IN (17777) ORDER BY meta_id ASC
1 SELECT * FROM wp_posts WHERE ID = 75807 LIMIT 1
1 SELECT post_id, meta_key, meta_value FROM wp_postmeta WHERE post_id IN (75807) ORDER BY meta_id ASC
1 SELECT * FROM wp_posts WHERE ID = 94767 LIMIT 1
1 SELECT wp_posts.* FROM wp_posts INNER JOIN wp_postmeta ON ( wp_posts.ID = wp_postmeta.post_id ) WHERE 1=1 AND ( ( wp_postmeta.meta_key = 'user' AND wp_postmeta.meta_value = '1' ) ) AND wp_posts.post_type = 'staff_record' AND ((wp_posts.post_status = 'publish')) GROUP BY wp_posts.ID ORDER BY wp_posts.post_date DESC
1 SELECT * FROM wp_posts WHERE ID = 34811 LIMIT 1
1 SELECT wp_posts.ID FROM wp_posts INNER JOIN wp_postmeta ON ( wp_posts.ID = wp_postmeta.post_id ) WHERE 1=1 AND ( ( wp_postmeta.meta_key = 'member_user' AND wp_postmeta.meta_value = '1' ) ) AND wp_posts.post_type = 'member' AND ((wp_posts.post_status = 'publish')) GROUP BY wp_posts.ID ORDER BY wp_posts.post_date DESC LIMIT 0, 1
1 SELECT * FROM wp_posts WHERE ID = 51367 LIMIT 1
1 SELECT * FROM wp_posts WHERE ID = 51368 LIMIT 1
1 SELECT * FROM wp_posts WHERE ID = 34810 LIMIT 1
1 SELECT * FROM wp_posts WHERE ID = 34843 LIMIT 1
1 SELECT * FROM wp_posts WHERE ID = 76594 LIMIT 1
1 SELECT * FROM wp_posts WHERE ID = 34821 LIMIT 1
1 SELECT * FROM wp_posts WHERE ID = 35407 LIMIT 1
1 SELECT * FROM wp_posts WHERE ID = 34819 LIMIT 1
1 SELECT * FROM wp_posts WHERE ID = 34817 LIMIT 1
1 SELECT * FROM wp_posts WHERE ID = 12371 LIMIT 1