School Management System Flutter

School Management System Flutter – In this article I have explained how develop android application school management system (eschool) project using flutter dart. Nowadays most of developers are migrate into java to flutter. Because it has lot of features, code saving & it’s a google framework. This is one of the best reason for migrate into Dart language.

Apart from this post you can also earn money in part time. The work is very easy just Create Blog & Earn Money from you working place or home. Because secondary income must need for our extra needs.

school management flutter

These days every school management moves on digital (E-School) way to complete their everyday work. Because when compare offline works digital way is best, time saving, no manual work, user friendly and more.

Create Project

Let’s start our project for make simple school projects using flutter. Flutter is best option for develop schools/college project. Because these projects need high level security & attractive user interface material design.

After initiate the projects, open the main.dart file and add following code to design homepage layout. So the main.dart file is,

import 'imports.dart';

void main() {
  // debugDefaultTargetPlatformOverride = TargetPlatform.iOS;
  timeDilation = 2;
  Provider.debugCheckInvalidValueType = null;
  setupLocator();
  runApp(
    MyApp(),
  );
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MultiProvider(
      providers: [
        StreamProvider<User>.value(
          initialData: User(),
          value: locator<ProfileServices>().loggedInUserStream.stream,
        ),
        StreamProvider<FirebaseUser>.value(
          initialData: null,
          value: locator<AuthenticationServices>().fireBaseUserStream.stream.asBroadcastStream(),
        ),
        StreamProvider<UserType>.value(
          initialData: UserType.UNKNOWN,
          value: locator<AuthenticationServices>().userTypeStream.stream,
        ),
        StreamProvider<bool>.value(
          initialData: false,
          value: locator<AuthenticationServices>().isUserLoggedInStream.stream,
        ),
      ],
      child: DynamicTheme(
        defaultBrightness: Brightness.light,
        data: (brightness) => ThemeData(
          pageTransitionsTheme: PageTransitionsTheme(builders: {
            TargetPlatform.android: CupertinoPageTransitionsBuilder(),
            TargetPlatform.iOS: CupertinoPageTransitionsBuilder(),
          }),
          fontFamily: "Nunito",
          primaryColor: Colors.red,
          accentColor: Colors.redAccent,
          primaryColorDark: Color(0xff0029cb),
          brightness: brightness,
        ),
        themedWidgetBuilder: (context, theme) => new OurSchoolApp(
          theme: theme,
        ),
      ),
    );
  }
}

class OurSchoolApp extends StatelessWidget {
  const OurSchoolApp({
    Key key,
    @required this.theme,
  }) : super(key: key);

  final ThemeData theme;

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      title: 'Our E-School',
      theme: theme,
      routes: {
        WelcomeScreen.id: (context) => WelcomeScreen(),
        Home.id: (context) => Home(),
        ProfilePage.id: (context) => ProfilePage(),
        GuardianProfilePage.id: (context) => GuardianProfilePage(
              title: 'Guardian Profile',
            ),
      },
      home: getHome(context),
    );
  }

  Widget getHome(BuildContext context) {
    User currentUser = Provider.of<User>(context, listen: false);
    UserType userType = Provider.of<UserType>(context, listen: false);

    // if (Provider.of<FirebaseUser>(context, listen: false) == null &&
    //     userType == UserType.UNKNOWN) {
    //       print("here");
    //   return WelcomeScreen();
    // }

    // if (userType == UserType.UNKNOWN) {
    //   return WelcomeScreen();
    // }

    if (Provider.of<bool>(context, listen: false)) {
      if (userType == UserType.STUDENT) {
        return currentUser.isEmpty() ? ProfilePage() : Home();
      } else {
        return Home();
      }
    } else {
      return WelcomeScreen();
    }
  }
}

Project Screenshot

school system flutter

Features

This application has lot of features. In below i have list out the benefits of school system project.

  1. Student Login
  2. Faculty Login
  3. Parents Login
  4. View & Access Profile Details
  5. Chat Parent & Teachers
  6. Upload Photos
  7. Share photos
  8. and more features like forget password etc

Download Source Code

Above code helps you to build android school management system using flutter. Because already I told flutter has lot of widgets facility to make attractive animated user interface design.

Want to read more our popular articles?

  1. Make Money Without 0 Investment
  2. Part Time Jobs
  3. How Become a Android Developer

If you want any websites or Mobile app just ping I will complete your enquiry with affordable price. So for more Contact Me..

Leave a Reply