/Saber-Modpack-Manager

A full-stack Minecraft modpack management system for my private modpacks.

Primary LanguageScalaMIT LicenseMIT

Contributors Forks Stargazers Issues MIT License

Saber Modpack Manager (SMM)


Table of Contents
  1. About The Project
  2. Usage
  3. Executables & Installation
  4. Development Progress
  5. Roadmap
  6. License
  7. Contact
  8. Acknowledgments

About The Project

The aim of this project is to create a Minecraft modpack management system comparable to the FTB and Technic launchers. It consists of several sub-systems, including a client program ( GUI and CLI versions ) for downloading, installing, and managing their installed modpacks, an authentication API for users to log in to their SMM accounts, a REST API for web service features, and a website for modpack documentation, mod help, mod author accreditation, and user account management.

Built With

This section should list any major frameworks/libraries used to bootstrap your project. Leave any add-ons/plugins for the acknowledgements section. Here are a few examples.

(back to top)

Usage

Below are the usages for each module of the system:

Client GUI

(NYI)

Client CLI

(NYI)

Primary API

(NYI)

Authentication API

(NYI)

(back to top)

Executables & Installation

Build releases for all components will be available here.

To use any of the components, download them to the desired run directory, install the latest version of java, and run the executable jar file. For command line execution, see the usages section for each module.

(back to top)

Development Progress

This project is developed using the Scrum methodology, as much as that can be followed by a solo dev. Current sprint progress for this project can be watched here , as well as simply following the sub-branches of the current sprint branch.

Branching Strategy

The branching strategy for this project is based on the GitLab Flow strategy. main is considered to be production, and only contains code from completed sprints. Each sprint gets its own branch, and from there the GitHub Flow strategy is used, treating the sprint branch as main. When a sprint is completed, the sprint branch is merged back into main Each sprint card is branched off of its sprint branch, and merged back in when the card is complete. This makes developing the project solo simpler to manage, while still maintaining some rigor from the original branching strategies mentioned earlier.

(back to top)

Roadmap

  • Alpha release

    • Mod download mechanism
    • Launcher Profile manipulation mechanism
    • Feature Web API architecture, design, and skeleton
    • Feature Web API database tables
    • Feature Web API pack download tables endpoints
    • Client application architecture
    • Client launch mechanism
    • Client application logic implementation
    • Client CLI program
  • Alpha update

    • Authentication API architecture, design, skeleton
    • Authentication API implementation and testing
    • Feature Web API authentication integration
    • Feature Web API Client VCS endpoints
    • Website architecture, design, and skeleton
    • Website landing page & login implemented
    • Website client download & documentation pages
    • Client self-update & login features implemented
  • Alpha update

    • Feature Web API pack VCS endpoints
    • Feature Web API pack update & details manipulation endpoints
    • Feature Web API author accreditation endpoints
    • Feature Web API public server registration endpoints
    • Feature Web API new endpoints testing
    • Website pack update page
    • Website author accreditation page template
    • Website public server registration form & pages
    • Website new feature menus, links, etc.
    • Website testing
  • Beta Release

    • Client GUI design
    • Client GUI layout & control elements
    • Client GUI application logic bindings
    • Client GUI testing
  • Road map update for full release plans

(back to top)

License

Distributed under the MIT License. See LICENSE.txt for more information.

(back to top)

Acknowledgments

Listed are some programs, services, plugins, and projects which either eased the development of this project, assisted with my learning, helped me find answers to my questions, helped me to stay organized, or inspired me in some way regarding the project.

(back to top)