/flutter_classroom

๐Ÿ’™ Google Classroom Clone using Flutter, GCP

Primary LanguageDart

Dart Flutter Cover

Introduction ๐Ÿš€

Classroom is a Google Classroom clone built using ๐Ÿ’™ Flutter.

Before we start, you can take a look at the app:

Output sample

Screenshots ๐Ÿ—ป

Output sampleOutput sampleOutput sampleOutput sampleOutput sampleOutput sampleOutput sampleOutput sampleOutput sampleOutput sample

Key Features ๐Ÿ”‘

  • Login/SignUp.
  • CRUD Course.
  • Join Course.
  • Invite students to Course.
  • Add/Remove students from Course.
  • Upload/Submit assignments, tests.
  • Calendar view.
  • Video Conference (Online Class).

How To Use ๐Ÿงพ

To clone and run this application, you'll need Git and Flutter installed on your computer. From your command line:

# Clone this repository
$ git clone https://github.com/Shadow60539/flutter_classroom.git

# Go into the repository
$ cd flutter_classroom

# Install dependencies
$ flutter packages get

# Run the app
$ flutter run

Packages ๐Ÿ“ฆ

Some very good packages are used in the project.

Below are the information about these packages.

PACKAGE INFO
cached_network_image Caching Network Images
flutter_bloc Bloc Pattern
lottie Lottie files animations
google_fonts Google fonts
freezed Code generation for immutable classes
lint Rules handler for Dart
build_runner Build Custom Models

Directory Structure ๐Ÿฆด

The project directory structure is as follows:

โ”œโ”€โ”€ android
โ”œโ”€โ”€ asset
โ”œโ”€โ”€ build
โ”œโ”€โ”€ images
โ”œโ”€โ”€ ios
โ”œโ”€โ”€ lib
โ”œโ”€โ”€ pubspec.lock
โ”œโ”€โ”€ pubspec.yaml

Let me explain the other directories besides lib:

DIRECTORY INFO
images readme images files
asset images and lottie files

Then the lib directory

lib

DIRECTORY INFO
core Global Classes
infrastructure Fetching data from backend
domain Converting raw json data into models -DTOs
application State Management
presentation UI