braze's People
braze's Issues
New pack version dialog
Should be a form with the following inputs:
- Version name (e.g. 1.2.3 or F2345): text input
- Game version: dropdown list populated by Minecraft versions
- Forge versions: searchable dropdown list filtered by selected game version, defaulting to latest build for that game version
- Java version: dropdown list populated by major Java versions; optional, set to 0 to unset
- Required memory: slider input populated by RAM allocations in 512MB increments; optional, set to 0 to unset
- Recommended: checkbox that will identify this as the new "recommended" version for this pack
- Mods: searchable dropdown list populated by mods and their versions
- Save: button that will load until the version is either saved successfully or an error is thrown
- There should be a table of included mods beneath the Mods dropdown, showing the mods and their versions
- Each row in the table should have a remove button that will delete it from the table
- Should show warning when including mods with unfulfilled dependencies
- Warning should reflect which mods should be included in order to fulfill dependencies
- Warning should be recalculated every time any mods are added/removed from the list
Edit pack version dialog
Should be a form identical to the new pack version dialog (#9); except that:
- All inputs are pre-populated with their current values
- There is a delete button
Add security / authentication
Need a security system for the program.
All data mutation REST calls (everything besides GET calls) should require authentication to execute.
The browser, using Basic Auth, should ask the user to log in before they can access the app.
This should be done using Spring Security and httpOnly cookies.
CSRF protection should be disabled for now.
New pack dialog
Should be a form with the following inputs:
- Pack name: text input for rich, alphanumeric+symbols name
- Author: text input for pack author name
- Description: long text input for pack description
- Link: optional text input for pack link
- Donate link: optional text input for pack author donation link
- Save: button that will load until the pack is either saved successfully or an error is thrown
Edit mod version dialog
Should be a form identical to the new mod version dialog (#2); except that:
- All inputs are pre-populated with their current values
- There is no file-upload
- There is a delete button
Mods page
Acceptance criteria:
- Should display a table with a list of existing mods
- Table should show a loading bar while fetching mod list
- There should be a search bar on the table, that will filter by mod info
- Each row in the table should show name, author, link, and edit button
- Clicking a row should expand to show description, donate link, versions, and add-version button
- Add-version button should open the new mod version dialog (#2)
- There should be an edit icon beside each version, which should open the edit mod version dialog (#4)
- Clicking the edit button on one row should open the edit mod dialog (#5)
- Navigating back to this page from anywhere else should refresh the table
- There should be an 'add' FAB in the bottom right corner which should open the New mod dialog (#3)
New mod dialog
Should be a form with the following inputs:
- Mod name: text input for rich, alphanumeric+symbols name (max len 32)
- Author: text input for mod author name (max len 32)
- Description: long text input for mod description (max len 512)
- Link: optional text input for mod link (max len 128)
- Donate link: optional text input for mod author donation link (max len 128)
- Save: button that will load until the mod is either saved successfully or an error is thrown
New mod version dialog
Should be a form with the following inputs:
- Version name (e.g. 1.2.3 or F2345): text input (max len 16)
- Game version: slider range input populated by Minecraft versions
- Min/max forge versions: searchable dropdown lists filtered by selected game versions, defaulting to widest possible range for those game versions
- Dependencies: searchable dropdown list populated by other mods and their versions
- Upload: file upload that will enable the save button once a jar is uploaded successfully
- Save: button that will load until the version is either saved successfully or an error is thrown
Add Mods API
Should be able to add a new mod, or a mod version (with file)
Acceptance criteria:
- Root of all calls should be
/braze/api
- Add new mod:
POST /mods
- POST body should include mod's slug, name, author, description, link, and donation link
- Add new mod version:
POST /mods/{slug}
- POST body should include name, index (in terms of version sequence; -1 if unspecified), min forge, max forge, and a list of dependencies
- Each version in the dependency list should only include the mod slug and the version name
- Dependency list can be empty
- If slug does not exist, return 404
- Upload file for mod version:
POST /mods/{slug}/{version}
- Should be uploading a zip file with the standard Solder structure (will be changed in future)
- If slug or version does not exist, return 404
Packs page
Acceptance criteria:
- Should display a table with a list of existing packs
- Table should show a loading bar while fetching pack list
- There should be a search bar on the table, that will filter by pack info
- Each row in the table should show name, slug, author
- New version button should open the new pack version dialog (#9)
- Clicking a row should expand to show previous info plus description, donate link, edit pack button, other versions, and other version add button.
- There should be an edit icon next to each version, which should open the edit pack version dialog (#10)
- Clicking the edit pack button should open the edit pack dialog (#12)
- Navigating back to this page from anywhere else should refresh the table
- There should be an 'add' FAB in the bottom right corner which should open the New pack dialog (#11)
Edit mod dialog
Should be a form identical to the new mod dialog (#3); except that:
- All inputs are pre-populated with their current values
- There is a delete button
- There is a table of all the versions of this mod, and the rows can be re-ordered with up/down arrow buttons
- Re-ordering the rows changes the logical sequence of versions for this mod
Get Mods API
Should be able to retrieve all mods, a specific mod, or a specific mod version from the server by web service call.
Acceptance criteria:
- Root of all calls should be
/braze/api
- Get all mods:
GET /mods
- All Mods list should include each mod's slug, name, author, description, link, and donation link
- Get one mod:
GET /mods/{slug}
- Returned mod should include everything in the All Mods list, plus a list of versions
- Each version in this list should only include the mod slug and the version name
- Get one mod version:
GET /mods/{slug}/{version}
- Returned modversion should include name, index (in terms of version sequence), min forge, max forge, md5, filesize, and a list of dependencies
- Each version in the dependency list should only include the mod slug and the version name
- Download mod zip:
GET /mods/{slug}/{version}/download
(subject to change in future)
Edit pack dialog
Should be a form identical to the new pack dialog (#11); except that:
- All inputs are pre-populated with their current values
- There is a delete button
- There is a table of all the versions of this pack (descending order)
- The top row is labeled "Latest"
- The rows can be re-ordered with up/down arrow buttons
- Each row has a radio button for "recommended"
- Re-ordering the rows changes the logical sequence of versions for this pack
API: Get Constants
Should be able to retrieve all Braze constants, including enums such as Forge versions, Java versions, and Minecraft versions.
Acceptance criteria:
- Root of all calls should be
/braze/api
- Get all constants:
GET /constants
- Constants should include forge versions (enum name, build no., game version), game versions (enum name, version no. string), and java versions (enum name, version no. string)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.