diff --git a/README.md b/README.md index 9ed1842..83819a1 100644 --- a/README.md +++ b/README.md @@ -1,58 +1,62 @@ -#

Schuly

Schuly Logo

+ +

Schuly

+

- The better alternative to Schulnetz - Flutter mobile client + The better alternative to Schulnetz

+

- GitHub stars Latest Release - Documentation + Documentation Website

-A modern Flutter mobile app for your school data. Intuitive interface, multi-user support, and seamless access to grades, timetable, absences, documents & report cards (Zeugnisse), and holidays. +

+ Start + Agenda + Grades +

+ +Your grades, exams, timetable, absences and documents in one app, for students attending a school in Switzerland. Schuly is independent and works with Schulnetz and OdA Org. > [!IMPORTANT] > This project is **NOT** affiliated with, endorsed by, or connected to Schulnetz or Centerboard AG in any way. -## Quick start +## Get it -Common workflows are wrapped as [bun](https://bun.sh) scripts (bun is only the task runner - it doesn't pull in a Node toolchain): +It's not in the App Store or Google Play yet. -```sh -bun run dev # flutter run, dev flavor -bun run prod # flutter run, prod flavor -bun run analyze # flutter analyze -bun run test # flutter test -``` +| On | Do this | +|---|---| +| Android | Download the `.apk` from the [latest release](https://github.com/schulydev/Schuly/releases/latest) | +| iPhone or iPad | Download the `.ipa` from the [latest release](https://github.com/schulydev/Schuly/releases/latest) and sideload it | +| Browser | Open [app.schuly.dev](https://app.schuly.dev), which needs a Schuly account | -Flavors: `dev` (`com.schuly.app.dev`, "Schuly DEV") and `prod` (`com.schuly.app`, "Schuly"). Targets Android and iOS only. +Then follow [Get started](https://docs.schuly.dev/getting-started/) to connect your school. -The backend URL is compiled in via `--dart-define=BACKEND_BASE_URL` and defaults to `http://localhost:5033`, so no machine IP is ever committed. [Development setup](https://docs.schuly.dev/Schuly/setup/development) covers the full script list, the build variants, and pointing the app at a local backend over USB or LAN. +## Features -## Documentation +- **Two ways to sign in**: a Schuly account updates in the background and notifies you about new grades. Private mode stores your school data only on your phone. +- **Several schools**: add more than one school account and switch between them. +- **Microsoft 365**: link your account and the web app also shows your mail, chats, files and notes. +- **Your own server**: use Schuly Cloud, or [run your own](https://docs.schuly.dev/self-host/) and point the app at it. -Full documentation lives at **[docs.schuly.dev/Schuly](https://docs.schuly.dev/Schuly/)**. +## Build it -| Guide | What it covers | -|---|---| -| [Development setup](https://docs.schuly.dev/Schuly/setup/development) | Prerequisites, bun tasks, flavors, and connecting to a local backend. | -| [Build and release](https://docs.schuly.dev/Schuly/setup/build-and-release) | Release builds for Android and iOS, and how a release is cut. | -| [Architecture modes](https://docs.schuly.dev/Schuly/architecture-modes) | Account mode vs private mode, and how each reaches school data. | -| [API client](https://docs.schuly.dev/Schuly/api-client) | Regenerating the Dart client from the backend's OpenAPI document. | -| [Contributing](https://docs.schuly.dev/Schuly/contributing) | Workflow, branch and PR conventions. | +```sh +bun run clean +bun run dev +``` -New to Schuly as a user? Start with the [getting-started walkthrough](https://docs.schuly.dev/getting-started/). +You need Flutter and [bun](https://bun.sh). The dev build talks to a server on `http://localhost:5033`. The rest is in [the app docs](https://docs.schuly.dev/Schuly/). -## The Schuly ecosystem +## License -| Repo | Purpose | -|---|---| -| [**Schuly**](https://github.com/schulydev/Schuly) | Flutter mobile app *(this repo)* | -| [**SchulyServer**](https://github.com/schulydev/SchulyServer) | ASP.NET Core API and web app | -| [**SchulyPluginAbstractions**](https://github.com/schulydev/SchulyPluginAbstractions) | Plugin contract (NuGet) | -| [**SchulyPlugins**](https://github.com/schulydev/SchulyPlugins) | Official plugins monorepo | -| [**SchulyWebsite**](https://github.com/schulydev/SchulyWebsite) | Landing site ([schuly.dev](https://schuly.dev)) | -| [**SchulyDocs**](https://github.com/schulydev/SchulyDocs) | Documentation site ([docs.schuly.dev](https://docs.schuly.dev)) | +[PolyForm Noncommercial 1.0.0](LICENSE) + +--- + +

Made with care by PianoNic