搜尋套件、儲存庫與 APP 分類

GitHub 儲存庫CircuitVerse/mobile-app

CircuitVerse 移動版

CircuitVerse 的行動應用程式

CircuitVerse 移動版 專案封面
星標
94
分支
152
最近推送(UTC)
2026年10月16日
專案狀態
未封存

原始 README

以下為英文專案原文快照,最新內容請造訪 GitHub。

CircuitVerse Mobile

CI CD

CircuitVerse for mobile is a cross-platform application built in Flutter using CircuitVerse API.

Getting Started

Follow these instructions to build and run the project

Prerequisites
  • Flutter 3.32.2 (stable)
  • Dart 3.8.1

Tip: To ensure you’re always using the correct Flutter version, consider using FVM (Flutter Version Manager) to manage versions.

Setup Flutter

A detailed guide for multiple platforms setup can be found in the Flutter installation guide

Setup Project
  • Clone this repository using git clone https://github.com/CircuitVerse/mobile-app.git.
  • cd into mobile_app.
  • flutter pub get to get all the dependencies.
  • Generate files using Builder Runner (required)
flutter pub run build_runner build --delete-conflicting-outputs
  • Switch to mobile-app's git hooks (optional but recommended)
git config core.hooksPath .githooks/

# Make sure npm is installed to run the next command
npm install -g @commitlint/config-conventional @commitlint/cli

Mobile App enforces Conventional Commits specification, make sure to read and follow them.

Running the app

Make sure you have a connected Android/iOS device/simulator and run the following command to build and run the app in debug mode.

flutter run

Running on Chrome (Web)

To run the app on Chrome, use:

flutter run -d chrome

Note: When running on Chrome locally, all API calls to circuitverse.org will be blocked by the browser's CORS policy. This causes Login, Register, and all data loading to fail. To bypass this during local development, launch Chrome with the --disable-web-security flag:

flutter run -d chrome --web-browser-flag "--disable-web-security"

⚠️ Only use --disable-web-security for local development. Never use it in production.

Android OAuth Config

This project uses Flutter 3.32.2 and hence the support for compile-time variables. To use compile-time variables pass them in --dart-defines as flutter run --dart-define=VAR_NAME=VAR_VALUE. Supported dart-defines include :

GitHub Configuration
  1. GITHUB_OAUTH_CLIENT_ID
  2. GITHUB_OAUTH_CLIENT_SECRET
Google Configuration

For Google OAuth we use google_sign_in. You'll require a Java KeyStore(.jks)

  1. Add cv_debug.jks in android/app/.
  2. Add key.debug.properties in android/.

Note: The OAuth Configuration section is not mandatory to get started. To get hold of the above secrets/files drop a message on slack with clear requirements and we'll take care.

Project Structure

mobile-app/lib/
├── config/                         # configuration files like environment_config
├── enums/                          # enum files
|   └── view_state.dart             # defines view states i.e Idle, Busy, Error
|   └── auth_state.dart             # defines auth states i.e logged in using Google/Github/Email
├── l10n/                           # localization files like intl_en.arb
├── locale/                         # AppLocalization & AppLocalizationDelegate
├── managers/
|   └── dialog_manager.dart         # show dialogs using dialog navigation key
├── models/                         # model classes
|   └── dialog_models.dart          # dialog request and response models
        ...
├── services/                       # services
|   ├── API/                        # API implementations
|   └── dialog_service.dart         # handles dialog
|   └── local_storage_service.dart  # handles local storage (shared prefs)
├── ui/                             # UI layer
|  ├── views/                       # views
|  |  └── base_view.dart
|  |  └── cv_landing_view.dart
|  |  └── startup_view.dart
|  └── components/                  # shared components
├── utils/                          # utilities such as api_utils routes.dart and styles.dart
├── viewmodels/                     # Viewmodels layer
├── app_theme.dart                  # Shared App Colors/border decorations etc.
├── constants.dart                  # App constants
├── locator.dart                    # dependency injection using get_it
├── main.dart                       # <3 of the app

Features

Groups
  • Create Groups.
  • Edit/Update/Delete Groups.
  • Add/Delete Members to the group.
Assignments
  • Create/Add Assignment to a Group.
  • Edit Assignments.
  • Check Assignment Submissions.
  • Grade Assignment's projects.
  • Update/Delete Grades.
Projects/Circuits
  • Fork Project.
  • Edit/Delete Project.
  • Add/Delete Collaborators.
  • Star Project to favourites.
  • View Projects you created/starred.
Profile
  • View/Edit Profile
Multi-language Support
  • English
  • Hindi
  • Arabic

Screenshots

Splash View Home View NavDrawer View NavDrawer View Login Teachers View About View Contribute View Groups View Assignment Details View Assignment Date View Assignment Time View Login View Register View Profile View Featured Circuits Exit Page

Simulator

Simulator

Multilingual Support

English Hindi Arabic

Dark Mode

Splash View Dark

Community

We would love to hear from you! We communicate on the following platforms:

Slack

Contributing

Whether you have feature requests/ideas, code improvements, refactoring, performance improvements, help is always welcome. The more contributions, the better it gets.

If you found any bugs, consider opening an issue.

Contributors

CircuitVerse Mobile App Contributors

License

This project is licensed under the MIT License.

CircuitVerse GitHub avatar
GitHub 作者

CircuitVerse ↗

語言DartJavaScriptC++CMakeKotlinHTMLRubyPythonSwiftCShellObjective-C

分類

依賴 Flutter 元件

使用的依賴

依賴清單 43 項

App 分類

如何選擇適合專案的儲存庫?

先依使用情境篩選,再比較專案活躍情況,最後到原始儲存庫確認使用要求。

  1. 透過儲存庫名稱、作者或描述搜尋,再依技術分類縮小範圍。
  2. 綜合星標、分支與最近推送比較專案;星標反映社群關注,不保證品質。
  3. 使用前在 GitHub 確認 README、授權條款與 Issues。

來源與維護

“A repository is the most basic element of GitHub.”

GitHub Docs — About repositories ↗