You are browsing as a guest. Sign up (or log in) to start making projects!

Metroid Mania YSWS

  • 16 Devlogs
  • 36 Total hours

# The Site for the WIP YSWS Metroid Mania --- Join #metroid-mania now ! --- YS: Metroid-Vania game (Games like Hollow knight and Silk Song ) WS: Charms to get Games and More --- Continues from [flavortown](https://flavortown.hackclub.com/projects/8382)

Ship #3

Metroid Mania - Ship Summary

The project this ship has been focused on order management, admin controls, and user systems. New Key features include:

  • Order & Form Refactoring: The order page was overhauled to use a single dynamic form (0e820f21), streamlining UI validation and charm slot linking (f35b58a9). Prize order deletion now clears FK references cleanly (9b44cb46).
  • Admin Enhancements: Admin workflows gained action grouping, force product deletion, and an overlay with legal/NDAs (eacd0880). Superadmin detection was decoupled from environments (8dc20948).
  • User Systems: A username system was added, alongside approved_seconds for precise credit calculations (6db7a580). Address management was introduced (then simplified) for physical orders (c4d89a16).
  • UI/UX Polishes: Demo link validation and a .btn-retro-noanim class improved consistency (72ce7806, 1ba61a4f). Like-button interactions were partially decoupled into partials (62203e0e).

Current Status: The project is streamlining legacy code (e.g., removing program keys a03bc008, test addresses f4c6969d) while hardening admin workflows. Redis integration and DB schema updates are live (783b67c4), and form state management remains a focus.

Learned: Dynamic form reduction simplifies order handling, but requires careful validation. Admin overlays centralize critical actions, though over-NDAs complicate UX. Dropping the address model highlighted the cost of premature data-collection where you can outsource it to an existing system.

The ship is trimming fat, tightening permissions.

  • 7 devlogs
  • 21h
  • 17.49x multiplier
  • 362 Stardust
Try project → See source code →
Open comments for this post

5h 33m 42s logged

Metroid Mania Devlog

Key Milestones & Features

  • Username System & Legal Compliance: Added user username tracking, NDA setting to prevent address viewing, and an admin overlay displaying legal info(name) (eacd088). This enhances user pii protection by requiring a separate proccess to be done too.
  • Dynamic Order Page: Refactored the order page into a single, dynamic form that adds/removes elements as needed (0e820f2), simplifying user interaction and reducing UI complexity.
  • Encapsulated Connection Logic: Made the connection method a private instance method (0e86db0), improving code modularity and reducing unintended side effects.
  • Admin System Overhaul: Removed environment-based superadmin detection (8dc2094), streamlining admin permissions for better security and maintainability.
    ** Current Main Focus **
    To ensure user data is safe and leaning more on hca for sensitive info (legal_names, phone_number, and addresses)
0
0
3
Open comments for this post

3h 34m 38s logged

Whole lot of reading api docs whilst coding:

Removed Addresses from database to use access tokens to fetch from hackclub auth to maintain more up to date info and remove address pii from local database

0
0
8
Open comments for this post

2h 57m 22s logged

Devlog: Admin Approved Time Override## SummaryAdded approved_seconds to Ship model, allowing admins to approve a different duration than what was devlogged lets the ysws stay in a budget by removing charm_notches for time that won’t contribute to budget. This enables scenarios where a user logs 4h but admin only approves 2h for credit/charm calculations.## Changes### Database- Added approved_seconds integer column to ships table (defaults to devlogged_seconds if not explicitly set)### Models- Ship: New approved_seconds attribute with default, set_approved_seconds callback (copies from devlogged_seconds on create), and recalculate_charm_notches! method for manual sync- Project: ship_and_award_credits! now uses approved_seconds for credit/notch calculation; removed ship_total_notches validation- ShipRequest: approve! accepts and passes approved_seconds; reject! now destroys associated charm notches- User: reconcile_charm_notches! uses approved_seconds instead of devlogged_seconds for carryover calculations### Controllers- Admin ProjectsController: Pass approved_seconds param through approve/ship/force_ship actions- Admin ShipRequestsController: Pass approved_seconds param through approve action### Views- Ship request approval form: Added “Approved Time” field (number input, max = devlogged_seconds)- Ship cards: Display “Approved Hours” alongside devlogged hours### Tests- Comprehensive coverage for: - approved_seconds determining notch awards - Devlogged seconds copied to approved seconds when not set - Explicit approved_seconds overriding devlogged_seconds - Carryover hours across multiple ships - Multiplier application on approved_seconds - recalculate_charm_notches! syncing, removing excess, preserving admin_granted - reject! destroying charm notches (owner and recipient) - Controller test: approve respects approved_seconds for notch calculation## Backward CompatibilityThe set_approved_seconds callback defaults to devlogged_seconds when not explicitly set, so existing ships and flows without the new param continue working unchanged.

0
0
10
Open comments for this post

4h 42m 24s logged

Add sessions association and related methods, update tests and models- Added has_many :sessions with dependent destroy to User

  • Added del_sessions method and invoked in destroy
  • Updated test suites (created a buncha them) and model validations for sessions, addresses, admin actions, and other features

Added base_cost to product for better checkout workflow
Fixed issue where you couldn’t get free charm (if charm was set to free it wouldn’t let you redeem it)
Fixed product delete and added force delete button
Refactor prize order deletion to clear charm slot FK references
Refactor charm slot reuse, add Redis service and DB name updatesRename Postgres DB to metroid_mania_test, add Redis container, adjust environment variables, refactor Order model to reuse existing empty charm slots with capacity limits, simplify loadout view logic, and add tests for slot reuse and header loadout.
Fix Guide Styling

0
0
11
Open comments for this post

2h 22m 46s logged

  • Enhanced UI & UX: The like button system now uses a new .btn-retro-noanim class for buttons that you want styled without the hover bob animation, ensuring visual consistency while reducing unnecessary animations commit. A major refactor extracted a reusable button partial and improved flash UI feedback for like/unlike actions, streamlining code and user experience commit.
  • Simplified Admin Flows:
    Removed redundant User.credits and corrected logic error in views/devlogs/_ships.html.erb
    Currency recalculation logic was streamlined to reduce redundancy, with UI updates synchronized across admin sections for reliability and performance commit.
  • Backend Normalization: Repository URLs are now consistently formatted, and GitHub identifier handling was improved to reduce errors in integration and dependency management commit.
  • User Experience Polish: Comment form labels were updated, and the comment field was made optional to improve accessibility and reduce friction commit.

Current Status: The project is hitting key milestones in user-facing polish and admin tooling, with a strong emphasis on maintainability. Core features like commenting and liking are now more robust, while backend consistency sets the stage for scalable integrations.

0
0
3
Open comments for this post

39m 16s logged

Refactor like/unlike actions, extract button partial, improve flash UISkip ensure_user_setup for like and unlike actions, replace redirect with turbo_stream and fallback HTML, extract the like button into a partial, and rewrite the flash partial with a fixed position, close button and fade‑out animation.

0
0
6
Ship #2

Added settings that enabled address collection on start (default: false)
Prizes which require a address (physical) ask for you to choose out of your addresses
Added a way to manage user addresses (admins cannot see addresses)
Added Ship request queue placement so you know how many things have to be reviewed ahead of time

  • 3 devlogs
  • 5h
  • 11.40x multiplier
  • 53 Stardust
Try project → See source code →
Open comments for this post

30m 58s logged

Key Milestones & Features
The project has introduced a foundational system for managing ship deployments with the implementation of a queue placement for ship requests. This feature ensures organized handling of ship allocation, likely addressing scenarios where players or systems request ships (e.g., resource management, combat, or exploration mechanics). The queue system likely prevents overlaps or conflicts, enabling smoother gameplay and logical progression.


Current Status
The core queue logic is now part of the codebase (commit: 2bc9e46 by Acidicts). While this marks a critical step in structuring backend mechanics, the project remains in early development. No UI or full integration details are visible yet, suggesting future work will tie this system into gameplay loops, player actions, or event triggers.


Things Learnt
This iteration highlights the importance of asynchronous request handling in game systems, especially for resource-heavy actions like deploying ships. Implementing a queue likely involved balancing performance, fairness, and user expectations. The team may have explored patterns for prioritization, delay handling, or concurrency, which will be key as complexity scales.

0
0
2
Open comments for this post

3h 45m logged

feat(address): add address management system for physical products- create Address model with country enum and has_many :orders association

  • add AddressController with CRUD operations supporting JSON and HTML formats
  • add AddressesController with create, update, destroy actions and reload parameter
  • add address association to Order model (belongs_to :address, required: false)
  • add physical attribute to Product model with physical? helper method
  • update User model to use has_many :address association with nested attributes
  • add migrations for addresses table and order address reference (address_id)
  • add address modal UI with form for creating addresses (HTML/JS)
  • add address picker and delete functionality in user edit view
  • add address selection dropdown for physical product orders in order forms
  • add address display in order details view
  • add CSS styles for address modal, form elements, and utility classes
  • add JavaScript for modal interactions, address deletion, and form submission
  • add trash-bin.svg icon for delete button
  • update routes to include destroy action for addresses

refactor(order): improve address handling in order creation

  • fix conditional logic for accessory cost calculation (separate if blocks)
  • add address assignment for physical products during order creation
  • update product form to include physical item checkbox

fix(validation): improve form field warning animations

  • add fade-out transition for field validation warnings via fade-out class
  • add timer-based warning auto-clear functionality (3s delay, 400ms fade)
  • add transition properties for border-color and box-shadow on field-invalid

style(application): add CSS utility classes and address styling

  • add transition properties for field-invalid class (border-color, box-shadow)
  • add fade-out animation for field-validation-warning (opacity transition)
  • add .apf-section-darken, .address-trigger-btn, .del-btn utility classes
  • add .inline, .jsb, .w100p, .g2r layout utility classes
0
0
1
Open comments for this post

24m 19s logged

Added toggle to disable the address page in the guide/ popup thing, this allows admins to disable collecting addresses immediately and lets people do it later on, eg when ordering a physical prize

0
0
3
Ship #1

Set Up - Setup my code-server environment, with ruby lsp
Added Redis Caching to decrease load time for admin/users and other menus
Made new mobile UI, and added Addresses, and changed the Comments to be polymorphic to enable easier adding to other things (devlogs, ships, orders)
Added admin changeable messages for when not running and rsvp is enabled

  • 6 devlogs
  • 10h
  • 3.99x multiplier
  • 40 Stardust
Try project → See source code →
Open comments for this post

6h 24m 10s logged

Made new mobile UI, and added Addresses, and changed the Comments to be polymorphic to enable easier adding to other things (devlogs, ships, orders) - (allows many different models to have comments)

0
0
4

Delete project?

Are you sure you want to permanently delete this project? This action cannot be undone.

All devlogs, followers, and associated data will be removed.

Followers

Loading…