Skip to content

BetterSEQTA/DesQTA

Repository files navigation

DesQTA

Features

  • Custom Homepage: A personalized homepage that displays upcoming assessments, lessons, and notices with subject-specific colors.

  • All SEQTA functionality kept: Most SEQTA actions can be performed here.

  • Timetable Colors: Integration of timetable colors for subjects to enhance visual identification throughout the entire app.

  • Sidebar Navigation: A sidebar with quick navigation links to various sections like Home, News, Assessments, Courses, Dashboard, etc.

  • Session Management:

    • Handles user sessions with login and logout functionality.
    • Stores session data securely.
  • API Integration:

    • Fetches data from SEQTA APIs for assessments, subjects, and user preferences.
    • Utilizes Rust for backend operations with Tauri.
  • Responsive Design:

    • Utilizes Tailwind CSS for styling.
    • Ensures a responsive and modern UI across different devices.

Weekly Builds

Weekly builds are available via GitHub Actions. You can download the latest build artifacts from the workflow page linked below. Quick access link

Full Releases

Full Releases are available under the releases tab.
Quick access link

Getting Started

Important

To run the dev script you must have rust, cargo (included with rust) and pnpm (npm install -g pnpm) on your system or it will not build.

Clone the repo:

git clone --branch develop https://github.com/betterseqta/desqta 

Run the program:

npm run start

Optionally run both commands manually:

Install modules

npm install

Run the script

npm run tauri dev

Building for production:

Build app

npm run tauri build

Warning

Do not run npm run dev as it starts the backend webui only; the pages loaded by DesQTA are built to be run by a framework not present in regular browsers. This is the same with npm run build; it will only build the webpage files, not the app.

Folder Structure

Folder Structure:

Root Directory

  • .gitignore - Git ignore rules
  • bun.lockb - Bun Lockfile
  • LICENSE - License file
  • package-lock.json - Lockfile for npm
  • package.json - Project's metadata and dependencies
  • pnpm-lock.yaml - Lockfile
  • postcss.config.js - Configuration for PostCSS
  • README.md - Project documentation
  • svelte.config.js - Configuration for Svelte
  • tailwind.config.js - Configuration for Tailwind
  • TODO.md - Project todos
  • tsconfig.json - TypeScript compiler configuration
  • vite.config.js - Configuration for the Vite build tool

.github

  • workflows/
    • build.yml - Build workflow

.vscode

  • extensions.json - Recommended VSCode extensions
  • settings.json - Required project-specific VSCode settings

src - Source Directory

  • app.css - Global styles
  • app.html - Base HTML template

components - Reusable Svelte components.

  • Editor/ - Editor module components.
    • Editor.svelte
    • EditorStyles.css
    • Plugins/ - Editor plugin system.
      • Commands/
        • command.ts
        • CommandList.svelte
        • stores.ts
        • suggestion.ts

routes - Route-based pages for the app

  • +layout.svelte
  • +layout.ts
  • +page.svelte
assessments - Assessments page
  • +page.svelte
  • [id]/
    • [metaclass]/
      • +page.svelte
      • +page.ts
courses - Courses Page
  • +page.svelte
  • types.ts
  • utils.ts
  • components/
    • CourseContent.svelte
    • LinkPreview.svelte
    • ScheduleSidebar.svelte
    • SubjectSidebar.svelte
dashboard - Dashboard Page
  • +page.svelte
direqt-messages - Direqt Messages Page
  • +page.svelte
  • types.ts
  • components/
    • ComposeModal.svelte
    • Message.svelte
    • MessageList.svelte
    • Sidebar.svelte
news - News Page
  • +page.svelte
notices - Notices Page
  • +page.svelte
reports - Reports Page
  • +page.svelte
settings - Settings Page
  • +page.svelte
  • plugins/ - Plugin store (coming soom)
    • +page.svelte
timetable - Timetable Page
  • +page.svelte
welcome - Welcome page
  • +page.svelte

utils - General Utilities

  • cache.ts
  • notify.ts
  • seqtaFetch.ts

src-tauri - Tauri Backend (Rust).

  • .gitignore
  • build.rs
  • Cargo.lock
  • Cargo.toml
  • tauri.conf.json

capabilities - Platform capabilities/permissions

  • default.json

gen - XCode Project Files for iOS devices

  • apple/
    • .gitignore
    • ExportOptions.plist
    • LaunchScreen.storyboard
    • Podfile
    • project.yml
    • Assets.xcassets/ - iOS icon and UI assets
      • Contents.json
      • AppIcon.appiconset/ - iOS app icons
    • desqta.xcodeproj/ - Xcode project structure
    • desqta_iOS/ - iOS-specific metadata
    • Sources/ - Objective-C/Swift bridging code
      • desqta/
        • main.mm
        • bindings/
          • bindings.h

icons

  • Various icon files for different platforms
  • android/ - Android-specific icons
    • mipmap-hdpi/
    • mipmap-mdpi/
    • mipmap-xhdpi/
    • mipmap-xxhdpi/
    • mipmap-xxxhdpi/
  • ios/ - iOS icon sizes

src - Rust source files

  • lib.rs
  • main.rs
  • auth/ - Authentication logic
    • login.rs
  • mobilechanges/ - Mobile-specific overrides
    • login.rs
  • utils/ - Backend utility
    • netgrab.rs
    • session.rs
    • settings.rs - Settings object for user settings

static

  • Various static assets
  • images/
    • editor/ - Icons used in the editor
      • commands/ - Command icons

Contributors

Star History

Star History Chart

About

A port of the SEQTA website and BetterSEQTA+ interface to native desktop

Resources

License

Stars

Watchers

Forks

Packages

No packages published