Welcome Contributors
Utopia Fleet Builder is an open-source project maintained by the Star Trek Attack Wing community. We welcome contributions of all kinds!Bug Reports
Found an issue? Let us know!
New Features
Have an idea? We’d love to hear it!
Data Updates
Add new ships, captains, or upgrades
Documentation
Help improve the docs
Project Information
- Repository: github.com/AngryTribble/Star-Trek-Attack-Wing-Utopia
- License: LGPL-3.0
- Issue Tracker: GitHub Issues
- Homepage: Utopia Fleet Builder
Project Team
Original Author: ComaToesContributors: KFNEXUS, jsterner73, CrazyVulcan, wiegeabo, SpinStabilized, catsgotmytongue, AngryTribble, Relequestual
How to Contribute
Set Up Your Environment
Follow the development setup guide to get started:
Create a Branch
Create a new branch for your changes:Branch naming conventions:
feature/- New features or enhancementsfix/- Bug fixesdata/- Game data additions or correctionsdocs/- Documentation improvements
Make Your Changes
Edit the relevant files:
- Code changes in
src/js/ - Style changes in
src/css/ - Data changes in
src/data/ - Template changes in
src/templates/
Test Your Changes
Ensure everything works:Open
http://localhost:8000 and verify:- New features work as expected
- Existing functionality still works
- No console errors
- UI displays correctly
Commit Your Changes
Write clear, descriptive commit messages:Good commit messages:
- “Fix fleet cost calculation for admiral upgrades”
- “Add missing Romulan ships from expansion 72015”
- “Update build process to support newer Node versions”
- “Improve mobile responsiveness of fleet list”
Contribution Types
Adding Game Data
The most common contribution is adding or correcting game data.Adding Ships
Adding Ships
File: Run
src/data/ships.js- Find an existing ship to use as a template
- Copy and modify with the new ship’s details
- Assign a unique ID (e.g.,
S500) - Include all properties: name, class, stats, abilities
- Reference the correct expansion set ID
npm run data to validate and generate.Adding Captains
Adding Captains
File:
src/data/captains.jsCaptain cards follow a similar structure:Adding Upgrades
Adding Upgrades
File:
src/data/upgrades.jsUpgrade cards include weapon stats if applicable:Adding Expansion Sets
Adding Expansion Sets
File:
src/data/sets.jsRegister new expansion sets:Code Contributions
JavaScript Guidelines
JavaScript Guidelines
- Follow existing code style and conventions
- Use clear, descriptive variable names
- Comment complex logic
- Test in multiple browsers
- Maintain AngularJS patterns (controllers, services, directives)
CSS Guidelines
CSS Guidelines
- Maintain consistent naming conventions
- Avoid overly specific selectors
- Test responsive layouts on mobile devices
- Use existing color variables and styles
- Consider print stylesheet if relevant
HTML Templates
HTML Templates
- Keep templates focused and modular
- Use AngularJS directives appropriately
- Ensure accessibility (alt text, ARIA labels)
- Test with screen readers if possible
Bug Fixes
Identify the Issue
Reproduce the bug and understand its scope:
- What triggers it?
- What’s the expected behavior?
- What actually happens?
Find the Cause
Use browser dev tools to debug:
- Check console for errors
- Use source maps to trace minified code
- Test with different data inputs
Implement the Fix
Make minimal changes to fix the issue:
- Don’t refactor unrelated code
- Add comments explaining the fix
- Consider edge cases
Pull Request Guidelines
PR Description Template
PR Checklist
Before submitting your PR:- Code builds without errors (
npm run build) - No ESLint errors in data files (
npm run lint-data) - Changes tested locally
- Commit messages are clear and descriptive
- PR description explains the changes
- No unnecessary files committed (node_modules, build outputs)
Code Review Process
- Submission: You create a pull request
- Review: Maintainers review your changes
- Feedback: You may receive comments or change requests
- Updates: Make requested changes and push updates
- Approval: Once approved, your PR will be merged
- Merge: Your changes become part of the project
Be patient during review. Maintainers are volunteers and may take time to respond.
Reporting Issues
Bug Reports
When reporting bugs, include:- Description: What went wrong?
- Steps to Reproduce: How to trigger the bug
- Expected Behavior: What should happen
- Actual Behavior: What actually happens
- Environment: Browser, OS, device
- Screenshots: If applicable
- Console Errors: Any JavaScript errors
Feature Requests
For feature requests, describe:- Problem: What limitation exists?
- Solution: How would the feature help?
- Alternatives: Other ways to solve it?
- Use Case: When would you use this?
Style Guidelines
Code Formatting
Data Formatting
Data Entries
Community Guidelines
- Be Respectful: Treat all contributors with respect
- Be Patient: Everyone is learning
- Be Constructive: Offer helpful feedback
- Be Collaborative: Work together toward solutions
- Be Inclusive: Welcome newcomers
This is a community project. We’re all Star Trek Attack Wing fans working together to build the best fleet builder possible.
Getting Help
If you need assistance:- Check the documentation - Most questions are answered here
- Search existing issues - Someone may have had the same problem
- Ask in issues - Create an issue with your question
- Be specific - Provide details and context
Recognition
All contributors are acknowledged in:package.jsoncontributors list- GitHub contributor graph
- Project README
Next Steps
Development Setup
Set up your local environment
Data Structure
Learn how data is organized
Build Process
Understand the build system
GitHub Issues
View open issues