The WIP successor to osu!track re-designed to be feature-packed, fast, robust, and cute. It's fully open source with a public API giving access to all stored osu!track data. Built using a Rust backend and utilizing the Rocket webserver, it's highly performant and leagues ahead of the PHP monstrosity I built as my learn-webdev project years ago.
Currently, this has only been tested on Linux. As soon as a developer based on Windows or Mac wishes to join the project, I will make every effort to get it building on other platforms as well (Shouldn't be too difficult).
This project has the following dependencies:
node
andnpm
- Rust nightly; to install, checkout https://rustup.rs/
- The Ubuntu
libmysqlclient-dev
package or equivalent
This section will be extended once I flesh a bit more of the foundation of the application out.
This is a project for the community, and so the community is welcome to contribute and help make it their own! I'm going to complete it no matter what levels of contribution the project receives, but any help is very much appreciated.
If you want to contribute, the best place to start is the osu!track v2 development Discord server: https://discord.gg/qh8B7YW
Ping me (@Ameo) and I'd be more than happy to chat with you about any ideas you have for the site, questions you have about its development, or anything else. I really want to make this a community-focused project, so I'm happy to implement peoples' ideas for new features or improvements.
I'm happy to work with people of all levels of programming experience. Osu!track was one of the first projects that I'd ever created, and it wouldn't have been possible without the help of Redback and Reese who helped to make the project into what it is today. Together with projects like Tillerinobot and the osu! game itself, I want to help make the osu!track community a place for new developers to learn, grow, and
The site is broken up into two parts: the frontend and the backend. The backend mainly serves as an API platform to process data out of the database and relay it to clients while the frontend serves as the primary interface between users and the site.
The frontend is built using the dva framework which is built on top of React, Redux, and React-Router. It's a fully-featured platform for creating responsive React applications, has support for all kinds of cool features, and is named after an Overwatch character. It goes hand-in-hand with the roadhog server, which is basically a souped-up version of create-react-app. If you're comfortable working with React and/or Redux, this should seem very familiar.
The backend is written in Rust using the Rocket webserver. I think Rust is an amazing language: fast, safe, clean, and productive to program in. However, if you've never worked with it before, it has a bad reputation for having a bit of a tough learning curve.
I chose Rust because it's a language I've worked with in the past, it has a really great community, and it's fast. No more waiting 15 seconds for pages to load; I want data to be available almost instantly for all pages and API endpoints.