Skip to content

Web dashboard & docs for Architus, a multi-purpose Discord bot

License

Notifications You must be signed in to change notification settings

architus/archit.us

Repository files navigation

Architus

FOSSA Status Website Uptime API Uptime Netlify Status Discord Server

Monorepo for all frontend source code under the Architus project. Archit.us provides a web dashboard server administrators and members can use to modify settings, view statistics and logs, and manage custom emoji and auto-responses. Docs.archit.us provides the platform to host a user guide, a changelog, and implementation documentation.

Web dashboard

🚀 Getting Started

To use Archit.us to manage the Architus bot on installed servers or add it to new ones, connect with Discord to be redirected to the web dashboard, where you can view settings and add the bot to your servers.

💁 Contributing

Architus is an open source project, and we welcome contributors. The monorepo is split into a set of Yarn workspaces/Lerna packages, and contains the following packages:

  • @architus/app - Main web dashboard codebase, built with React, Gatsby, TypeScript, and Linaria
  • @architus/docs - Documentation site, built with React, Gatsby, TypeScript, and Linaria
  • @architus/lib - Utility functions/types, built with TypeScript
  • @architus/facade - Architus design system, including React components and design tokens to be consumed in downstream website projects via Linaria

Setup

To start working on any of the above packages, you'll need to have Node.js installed. Once installed, run the following commands to download dependencies:

npm install -g yarn
yarn install

📡 Development Server

Because both websites are built with Gatsby at their core, there are two options to preview the app while developing: a hot reload-enabled development server (recommended) and a statically-generated site preview.

Hot-reload-enabled

At the repository root, run:

yarn workspace @architus/<package> start

Statically-generated preview

yarn workspace @architus/<package> build
yarn workspace @architus/<package> serve

Code Style

Each project uses ESLint and Prettier to enforce TypeScript code style across the repository, in addition to the TypeScript compiler. To run them locally, run:

yarn lint
yarn typecheck

Testing

Each package has testing configurations, based on Jest, for use with creating unit tests and tracking coverage. To run all tests, run:

yarn test

❓ Getting Help

If you have an issue about the bot, the web dashboard, or have any other questions, feel free to create a new issue or join our Discord server

🛠 Tooling & Core Libraries

This project uses a variety of useful tooling to help develop, manage, and deploy the application. Among those are:

  • TypeScript - Statically typed superset of JavaScript used to make code self-documenting and catch runtime errors early
  • Linaria - Framework for using CSS-in-JS without a runtime overhead via static extraction
  • Gatsby - Static site generator and data layer used to manage the build lifecycle of both the docs website and the web dashboard
  • Lerna - Monorepo management CLI used to automatically create symbolic links between dependent local packages, allowing developers to modify each locally
  • Yarn - Package/dependency management tool
  • GitHub Actions - Used to automatically run CI/CD
  • Jest - Used to run unit tests and track coverage via Istanbul
  • ESLint / Prettier - Used to enforce consistent code style across the project & catch
  • Netlify - Used to automatically deploy the live and canary builds. Deploy information is available at the Deploy page
  • FOSSA - Used to scan dependencies and perform license compliance
  • UptimeRobot - Used to track uptime and notify upon outage for the websites and the API

📜 License

FOSSA Status