Skip to content

NJUPT-SAST/sast-evento

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

SAST Evento

A cross-platform desktop client based on Slint

#MadeWithSlint

English | ็ฎ€ไฝ“ไธญๆ–‡

๐Ÿ“Œ Brief

SAST Evento is an event management system for SAST. During our activities, we often encounter the following problems:

  • The collection of event information is still done through traditional shared spreadsheets, which is inefficient.
  • Manual investigation is required to resolve conflicts in event scheduling and venue availability.
  • The event schedule template needs to be manually updated every week and cannot be generated automatically.
  • The participation and feedback from students are not high, and the achievements of the events cannot be quantified.
  • There is a lack of quality feedback for the events.

To address these issues, we have decided to develop an event assistance system during the SoC period to help department heads and instructors smoothly manage their daily activities and reduce communication burden.

This project is the desktop client version of SAST Evento.

๐Ÿ” Preview

๐ŸŒ€ Platform Support

Platform Status Instruction
Windows x64 โœ…
Windows arm64 โŒ Waiting for Slint upstream fixes
macOS arm64 โœ…
macOS x64 โœ…
Linux x64 (pacman) โœ…
Linux x64 (portage) โœ…
Linux x64 (deb) โœ…
Linux x64 (rpm) โŒ PRs are welcome
Linux x64 (nix) โŒ PRs are welcome
Linux x64 (AppImage) โœ…

๐Ÿ“ฆ Installation

Normally, you could download the latest version from the release page. If you are using one of the following Linux distributions, you can install the package directly through the package manager.

Arch Linux

paru -S sast-evento
# or
yay -S sast-evento

Note

You can install sast-evento-bin package if you want to install the pre-built binary package, or sast-evento-git package if you want to use dev branch.

Gentoo Linux

Add corcodile overlay.

emerge -av eselect-repository
eselect repository add corcodile git https://github.com/f3rmata/corcodile.git

Using spdlog in overlay to fix the bundled fmt issue.

emerge -av spdlog::corcodile sast-evento

๐Ÿ“‚ Files Produced

Configuration

Under normal circumstances, you do not need to modify this file directly. The configuration file is located in the following paths:

  • Windows: %AppData%\Local\NJUPT-SAST-C++\SAST-Evento\config.toml
  • macOS & Linux: $HOME/.config/NJUPT-SAST-C++/SAST-Evento/config.toml

Log

The log file is located in the log folder. Remember to submit the log file when you report bugs. The log folder is located in the following paths:

  • Windows: %Temp%\NJUPT-SAST\logs
  • macOS: $TEMPDIR/NJUPT-SAST/logs
  • Linux: /tmp/NJUPT-SAST/logs

Cache

The cache folder is located in the following paths:

  • Windows: %LocalAppData%\evento
  • macOS: $HOME/Library/Caches/evento
  • Linux: $HOME/.cache/evento

๐Ÿ“ Development

Prerequisites

  • Compiler that supports C++20 or higher standard
  • CMake 3.21 or higher version
  • vcpkg package manager
  • Rust toolchain

For Linux platforms, we recommend you install the Qt6 base library directly from the package manager:

# For Arch Linux
sudo pacman -S qt6-base
# For Ubuntu
sudo apt install qt6-base-dev

For macOS and Windows platforms, you can install Qt6 from the official website to dynamically link Qt to this project; Alternatively, you can use vcpkg to build Qt6 from source.

Clone

git clone --recursive https://github.com/NJUPT-SAST/sast-evento.git

Note: This project uses submodules, so make sure to clone the repository with the --recursive flag, or execute the following command after cloning:

git submodule update --init --recursive

Commit Check Hook

This project uses pre-commit for commit checks to ensure code style consistency. Please install the pre-commit tool first:

# For Arch Linux
sudo pacman -S pre-commit
# For Pipx users (cross-platform)
pipx install pre-commit

Then, after cloning the project, execute the following command to install the pre-commit hook:

pre-commit install

Tip

If you find the results provided by the tool unreliable, you can temporarily skip the commit check by using git commit --no-verify.

Build

Tip

We recommend using VScode to open and edit the project. We have reserved the .vscode folder for basic settings and extensions.

This project uses CMake Presets for quick configuration and building. The required command line is as follows:

# For Windows platform, make sure the compilation toolset-related environment variables are configured
# You can use the `vcpkg env` command to enter a shell with the correct environment variables set
cmake --preset native
# Depending on your needs, you can use `native-debug`, `native-release`, or `native-relwithdebinfo` preset
cmake --build --preset native

If you use vcpkg to install Qt6, you need to add the following build options to the CMake command:

cmake --preset native -DVCPKG_MANIFEST_FEATURES=qt-from-vcpkg

For Windows platform, you can use static linking to avoid some strange problems:

cmake --preset native -DVCPKG_MANIFEST_FEATURES=qt-from-vcpkg -DVCPKG_TARGET_TRIPLET=<x64 or arm64>-windows-static

If you want to speed up the build process in Debug mode, you can add -DSPEED_UP_DEBUG_BUILD=ON option.

๐ŸŒˆ Contributing

Pull requests and any feedback are welcome. For major changes, please open an issue first to discuss what you would like to change.

Thanks to all contributors

Contributors

๐Ÿ”— Links

Relative Projects

Readme Card Readme Card Readme Card Readme Card

Project Dependencies