GithubHelp home page GithubHelp logo

ortham / buddah Goto Github PK

View Code? Open in Web Editor NEW
8.0 8.0 5.0 360 KB

A simple registry for community-made game modding software.

Home Page: https://ortham.github.io/buddah

License: GNU General Public License v3.0

HTML 12.11% JavaScript 74.87% CSS 13.02%

buddah's People

Contributors

dannyhand avatar greenkeeper[bot] avatar insane0hflex avatar matortheeternal avatar namralkeeg avatar ortham avatar scrivener07 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

buddah's Issues

Split sections up to be more granular

What it says on the tin. BSAs and BA2s should be two separate sections, and Mod Managers can be a section in its own right. Sections can also be split into library and application sections.

Get projects' metadata from GitHub if possible

A large number of projects have their repos hosted on GitHub, so the GitHub API could be used to fetch:

  • description
  • license
  • homepage
  • keywords (from topics, but this is in preview)

This would only happen if the given repo URL is a GitHub URL. For flexibility, these fields should not use whatever is returned by the GitHub API if they have values specified in buddah's JSON file.

Also, to reduce API requests, the response data should probably be cached client-side using offline storage.

Turn list into GitHub Pages-hosted site

An alphabetical, category-based list is a good way to present a collection of modding tools, but it's not so good as a way of storing them. What would be better is if the entries could be stored as structured data, as this would help handle cases of an entry belonging in more than one section, and also help store metadata like which are open source, which are "best of"s, etc. more robustly.

This could be done by having a JSON file (or several JSON files) containing data structures like (borrowing from Bower & NPM):

{
  name: String
  keywords: [ String ]
  description: String
  homepage: String
  repository: String
}

This data could then be XHR loaded and used to construct a list.

Github has released repository "Topics"

Github's new "Topics" allow you to discover networks of similar repositories in a completely new way. This new GitHub feature essentially does what WrinklyNinja/buddah already does but with a much broader scope.

What does this mean for future development on this project? Can these new GitHub features be leveraged to make this project better? Maybe it will make this project obsolete, though time will tell when the networks are more mature. I feel the tighter scope of "game modding" this project offers makes it still relevant and useful.

Here's to starting a discussion about this in case is was on anyone else's mind as well.
@WrinklyNinja

Concat selected tag searches.

Whenever a tag is selected it is added to the search field. If another tag is selected the first tag is replaced. Multiple tags can be typed into the search but it would be nice if it worked with clicking the tags too.

What do you think about this idea?

Open Links in New Tab

For the entry source and website would you change the links to open in a new tab?

Indicate which entries do what they do best, where appropriate

There are a lot of entries that do pretty much exactly the same thing, and they are not all equal: some are at very early stages, some are very feature-rich, and there should be some indication of this: there's no point working off library X if library Y does the same thing but better.

Write tests, hook up CI, and require status checks before merging

I accidentally broke the site by making a JS error, and if I'd TDD'd that wouldn't have happened. The CI would run the tests and also validate the JSON against a schema.

  • Validate JSON against schema
  • Write tests for API
  • Integrate Travis CI
  • Require a Travis CI status check for merging into gh-pages

Indicate which entries are open-source

Open source utilities and libraries are more useful to developers as they expose how things are done, which can be insightful, so they may be preferable to a closed-source alternative of similar functionality.

Differentiate entries on the presence of documentation

Documentation is particularly important for libraries and APIs, as at least with a CLI there's generally a help command, and with a GUI you can just click things, but reading through the code to see what's going on is a pain. As such, it would be useful to differentiate between entries that have documentation and those that don't.

Implement search-based UI

A search-based UI is more useful as the number of list items increases, and helps to better catch the complexity some tools can have, without duplicating them in several sections (which just increases the length of the page, giving you more to read).

The sections JSON key should be replaced by a keywords key, which will contain searchable keywords for an entry. The entry names will also be searched (but not the descriptions).

In the interests of giving people ideas on what to search for, it would be good for the default page to display a list of keywords in order of decreasing popularity.

The search function will be a bit tricky, as I'd like results to be listed in some kind of relevance-based order, with entries that match more keywords being listed higher up. The search terms will be split on spaces, excluding quoted substrings.

I've started this, but only with a first-come, first-serve result order, so I'm hoping to hook up a library that will provide a better search, and the UI for result entries needs some thought too.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.