Classroom is a Google Classroom clone built using π Flutter.
Before we start, you can take a look at the app:
- 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).
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
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 |
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 |