Skip to content

cucumberpork3/Dss-beta

Repository files navigation

Helldivers 2 Loadout Builder

A powerful companion tool for Helldivers 2 that lets you build, customize, and save your perfect loadouts for every faction and mission. Master your loadouts with an intuitive interface designed for elite soldiers.


Table of Contents


Features

  • Build Custom Loadouts - Select your primary weapon, secondary, grenade, and up to 4 stratagems
  • Save & Persist - Your loadouts are securely saved to your Firebase account for easy access anywhere
  • Authentication - Sign in with your account to sync loadouts across devices
  • Weapon/Perk Database - Browse and select from the complete arsenal of Helldivers 2 weapons, perks, grenades, and boosters
  • Stratagem Library - Full stratagem codes and categories for every class
  • Faction Support - Build loadouts tailored to different factions and mission types
  • Community Resources - Access shared builds and community strategies
  • Responsive Design - Works seamlessly on desktop, tablet, and mobile devices

Quick Start (Users)

  1. Access the App: Open this link in your browser or deploy to a web server
  2. Sign In: Create an account or sign in with your existing credentials
  3. Build Your Loadout:
    • Select your primary weapon
    • Choose a secondary weapon
    • Pick a grenade type
    • Select up to 4 stratagems for your mission
    • Add a booster if needed
  4. Save Your Loadout - Click save and your loadout is stored to your account
  5. Deploy - take it with you to the mission!

Installation & Setup (Developers)

Prerequisites

  • Node.js (v16 or higher)
  • npm (v8 or higher)
  • Firebase credentials (if deploying with Firebase)

Local Development

  1. Clone the Repository

    git clone https://github.com/cucumberpork3/Dss-beta
    cd dss-beta
  2. Install Dependencies

    npm install
  3. Configure Firebase (if using authentication/persistence)

    • Set up a Firebase project
    • Update firebase.json with your project configuration
    • Update Firestore rules in firestore.rules as needed
  4. Start Development Server

    npm run dev

    The app will be available at http://localhost:5000 (or your configured port)

  5. Build for Production

    npm run build

    Output will be in the dist/ directory

Environment Variables

Create a .env.local file in the root directory (if needed for API keys):

# Example - adjust based on your configuration
VITE_FIREBASE_API_KEY=your_firebase_api_key
VITE_FIREBASE_PROJECT_ID=your_firebase_project_id

Project Structure

dss/
├── public/                     # Static web assets and main app
│   ├── index.html             # Main application entry point
│   ├── manifest.json          # PWA manifest
│   ├── service-worker.js      # Service worker for offline support
│   ├── auth/                  # Authentication pages
│   ├── profile/               # User profile pages
│   ├── weapons/               # Weapon data & assets
│   ├── perks/                 # Perk data & assets
│   ├── grenades/              # Grenade data & assets
│   ├── stratagems/            # Stratagem codes & assets
│   ├── boosters/              # Booster data & assets
│   ├── community/             # Community/social features
│   ├── icons/                 # Icon assets
│   └── logos/                 # Logo assets
├── Strat/                      # Vite-based React components (optional addon)
│   ├── src/
│   │   ├── App.tsx            # React app component
│   │   ├── fetchStratagems.ts # API integration for strataegms
│   │   ├── components/        # React components
│   │   └── data/              # Data files (stratagems.json)
│   ├── package.json
│   └── vite.config.ts
├── firebase.json              # Firebase configuration
├── firestore.rules            # Firestore security rules
├── firestore.indexes.json     # Firestore index configuration
├── package.json               # Project dependencies & scripts
└── README.md                  # This file

Key Directories

  • public/ - Main web app, contains HTML, CSS, and client-side JavaScript

    • auth/ - User authentication interface
    • weapons/, perks/, grenades/ - Equipment selection interfaces
    • stratagems/ - Stratagem selection and codes
  • Strat/ - Optional React/Vite-based component for the Stratagem Hero training game


Tech Stack

  • Frontend: HTML5, CSS3, JavaScript (Vanilla + optional React)
  • Build Tool: Vite (for React components in Strat/)
  • Backend/Database: Firebase Realtime Database & Firestore
  • Authentication: Firebase Authentication
  • Hosting: Firebase Hosting (or any static host)
  • Package Manager: npm

Build & Deployment

Development

npm run dev

Starts the development server with hot module reloading.

Production Build

npm run build

Optimizes and bundles the app for production.

Deploy to Firebase Hosting

npm install -g firebase-tools
firebase deploy

This will deploy to the Firebase project specified in firebase.json.


Contributing

We welcome contributions! Here's how to get involved:

Reporting Issues

  • Found a bug? Create an issue with:
    • Description of the problem
    • Steps to reproduce
    • Expected vs. actual behavior
    • Browser/device information

Submitting Changes

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/ver-democratic-feature)
  3. Make your changes
  4. Test thoroughly
  5. Commit with clear messages (git commit -m 'Add very democratic feature')
  6. Push to your fork (git push origin feature/very-democratic-feature)
  7. Open a Pull Request with a description of changes

Code Style

  • Keep code clean and well-commented
  • Follow existing naming conventions
  • Test changes before submitting
  • Update documentation as needed
  • Code should always be as democratic as possible

Troubleshooting

Port Already in Use

If port 3000 is already in use:

npm run dev -- --port=3001

Firebase Authentication Not Working

  • Verify Firebase credentials are correct in firebase.json
  • Check Firestore rules in firestore.rules allow read/write for authenticated users
  • Ensure Firebase project has Authentication enabled

Changes Not Reflecting

  • Clear browser cache
  • Hard refresh (Ctrl+Shift+R or Cmd+Shift+R)
  • Check browser console for errors (F12)

Build Errors

  • Delete node_modules/ and run npm install again
  • Make sure you're using a compatible Node.js version
  • Check that all environment variables are set if required

License

[Add your license information here - e.g., MIT, GPL, etc.]


Support & Contact

  • Issues & Feature Requests: Open an issue on the repository
  • Questions: Check existing issues or start a discussion
  • Security Concerns: Report privately to [[email protected]]

Roadmap

  • Offline support with service workers (in progress)
  • Loadout sharing via links
  • Community leaderboards
  • Mission-specific recommendations
  • Mobile app version

Happy diving, helldivers!
May Democracy guide your path

Build your perfect loadout and spread managed democracy across the galaxy.

About

Repo for the Democracy space station loadout builder

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages