<div align="center">
<img src="keisatsu-chan.png" title="keisatsu-chan~">
<p><strong><h3>/nise.moe/ project</h3></strong></p>
<p>
an osu!std website that tracks possible cheaters.
</p>
</div>

# modules

the website is split into the following modules, each with their own folder and readme.

| Name               | Description                                                               | Tech                |
|--------------------|---------------------------------------------------------------------------|---------------------|
| nise-backend       | The main module, serves an API and processes new scores.                  | Kotlin, Spring Boot |
| nise-frontend      | The frontend module (Angular), uses the API to display data.              | Angular             |
| nise-circleguard   | Written in Python, serves as an HTTP interface for circleguard.           | Python              |
| konata             | Sub-module to detect stolen replays with multithreading support.          | Kotlin              |
| mari               | Sub-module to handle replay files and judgement data                      | Kotlin              |
| nise-discord       | Module that runs a Discord bot for role management                        | Python              |
| nise-replay-viewer | Standalone react-based website that plays osu!std replays in your browser | React/p5.js         |

# how to run

### development

you can read the individual readme files for each module to see how to run them in development.

### production

we manage the production stack in a separate `infra` repository. it uses docker-compose to handle the containers, and traefik as a reverse proxy.

# contributing

if you want to contribute, feel free to open an issue or a pull request. you can also join [the discord server](https://discord.gg/wn4gWpA36w) to discuss the project.
