Skip to content

Rurusetto/rurusetto

Repository files navigation

Rūrusetto logo

Rūrusetto (ルールセット)

Continuous Integration Deploy Changes to Server CodeFactor Website Contributor Covenant Discord Shield

A wiki that contains all osu! rulesets

The new era of Rūrusetto is beginning!

About the new website

The new website is targeted to revamp all the UI of the old website and make Rūrusetto a dynamic website with a lot more of new functions that cannot be added to the old website's source code.

Old website source code

The old source code of the website is in the other branch

API

We also provide the API for developer who want to use of our rulesets information in our database for your own dream project. More info available in the documentation.

Localization

We just add support for localization on website. You can help us by translate your language by go to POEditor, add your language that you want to help us to translate and start on translation process. We always update localization file weekly.

Developing Rūrusetto

Please make sure you have the following prerequisites:

Downloading the source code

Clone the repository:

git clone https://github.com/Rurusetto/rurusetto/
cd rurusetto

To update the source code to the latest commit, run the following command inside the Rūrusetto directory:

git pull

Make the virtual environment

During the development progress, we recommend using a virtual environment.

First, make a folder to contain the virtual environment in Rūrusetto directory. Then build the virtual environment.

cd rurusetto
mkdir venv
python3 -m venv rurusettovenv

When you want to access the virtual environment just use source command and link it to the activate file to activate the virtual environment file in Rūrusetto directory.

source rurusettovenv/bin/activate

And when you want to get out of from the virtual environment, use the deactivate command.

deactivate

Note : If you use PyCharm, you can click on the python interpreter and you can add the new interpreter to create a new virtual environment. Then when you run the commands in PyCharm terminal, all commands will persist in the virtual environment.

Install the requirement library in the virtual environment

When you start the virtual environment, you need to install the requirements that are listed in requirements.txt file. Run this command in Rūrusetto directory to do so automatically:

pip install -r requirements.txt

Make the database

Before we can start the server, we must make a database for the website by migrating the database from the code. Run this command in Rūrusetto directory to make the database.

cd rurusetto # get in the Rūrusetto project config folder
python manage.py migrate

Compile localization file

We must render the localization file to make the localization work properly.

cd rurusetto/wiki # get in wiki app
django-admin compilemessages # make localization file
cd ..
cd users
django-admin compilemessages # make localization file

Fill the configuration value and secret key

Rūrusetto uses python-decouple library to separate the configuration value and secret key. This library will read the configuration value from the .env file. Create the .env file in rurusetto folder. Below is the template for this file.

SECRET_KEY = awesome_key_here
DEBUG = True
TEST_SERVER = True
ALLOWED_HOSTS = 127.0.0.1
OSU_OAUTH_CLIENT_ID = idgohere
OSU_OAUTH_CLIENT_SECRET = keygohere
OSU_API_V1_KEY = keygohere
GITHUB_TOKEN = githubtokengohere

For full environment file for using in production environment please see .env.example file.

Note : The OSU_OAUTH_CLIENT_ID OSU_OAUTH_CLIENT_SECRET and OSU_API_V1_KEY are required when you want to development with osu! OAuth system or some program parts that require the osu! API you must fill the osu! API key and OAuth app number in .env to start development on this function. But if you are not testing this function it's okay to leave the key blank. (The development OAuth server callback is http://127.0.0.1:8000/accounts/osu/login/callback/.)

Start the development server

Run the runserver command in Rūrusetto directory

cd rurusetto # get in the Rūrusetto project config folder
python manage.py runserver

Contributing

When it comes to contributing to the project, the two main things you can do to help out are reporting issues and submitting pull requests. We have prepared a list of contributing guidelines that should hopefully ease you into our collaboration process.

Note that the contributing guidelines are not exhaustive. Nothing is set in stone. If you have an issue with the way the code is structured, with any libraries we are using, or with any processes involved with contributing, please bring it up and ask us! We welcome all feedback, so we can make contributions to this project as hassle-free as possible.

We use code of conduct from Contributor Covenant.

Special Thanks

  • @IKeepItNoodles for icon, branding design and new color schemes.
  • Netlify for sponsors us the open source plan using in hosting some static site of our project like documentation site.
  • Sentry for sponsor us a sponsored plan using in error monitoring tool for our project.
  • POEditor for sponsor us a sponsored plan using in localization tool for our project.

License

The code in this repository is licensed under the MIT license. Please see the license file for more information.

TL;DR you can do whatever you want as long as you include the original copyright and license notice in any copy of the software/source.

The images in this website and the content that is upload by the users and community are covered by DMCA. If you are the work's original owner and want to request to remove your work, please email the team by contact HelloYeew (project leader) at me@helloyeew.dev.

Each ruleset has its own license.

The licensing here does not directly apply to osu! and ppy, as it is bound to its own licensing.