パッケージ、リポジトリ、アプリカテゴリを検索

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 件

アプリカテゴリー

プロジェクトに合うリポジトリを選ぶには?

用途で絞り込み、開発状況を比較し、採用前に元のリポジトリで要件を確認しましょう。

  1. 名前・作者・説明で検索し、技術トピックで絞り込みます。
  2. スター、フォーク、最近のプッシュを比較します。スターは関心の目安であり、品質の保証ではありません。
  3. 利用前に GitHub で README、ライセンス、Issues を確認します。

情報源と管理

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

GitHub Docs — About repositories ↗