flutter_classroom
flutter_classroom copied to clipboard
๐ Google Classroom Clone using Flutter, GCP

Introduction ๐
Classroom is a Google Classroom clone built using ๐ Flutter.
Before we start, you can take a look at the app:

Screenshots ๐ป










Key Features ๐
- [x] Login/SignUp.
- [x] CRUD Course.
- [x] Join Course.
- [x] Invite students to Course.
- [x] 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

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