├── assets
├── 1.jpg
├── 2.jpg
├── 3.JPG
├── 4.JPG
├── 5.jpg
├── 6.jpg
├── 7.jpg
├── 8.jpg
├── 9.jpg
├── 10.jpg
└── bps.png
├── android
├── app
│ ├── src
│ │ ├── main
│ │ │ ├── res
│ │ │ │ ├── drawable
│ │ │ │ │ ├── bps.png
│ │ │ │ │ └── launch_background.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ └── values
│ │ │ │ │ └── styles.xml
│ │ │ ├── java
│ │ │ │ ├── com
│ │ │ │ │ └── example
│ │ │ │ │ │ └── school
│ │ │ │ │ │ └── MainActivity.java
│ │ │ │ └── io
│ │ │ │ │ └── flutter
│ │ │ │ │ └── plugins
│ │ │ │ │ └── GeneratedPluginRegistrant.java
│ │ │ └── AndroidManifest.xml
│ │ ├── debug
│ │ │ └── AndroidManifest.xml
│ │ └── profile
│ │ │ └── AndroidManifest.xml
│ └── build.gradle
├── gradle.properties
├── gradle
│ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
├── settings.gradle
└── build.gradle
├── Screenshot_2019-07-06-16-09-56-465_com.bpsplayschool.app.png
├── Screenshot_2019-07-06-16-10-02-448_com.bpsplayschool.app.png
├── Screenshot_2019-07-06-16-10-05-763_com.bpsplayschool.app.png
├── lib
├── school
│ ├── contact.dart
│ ├── about.dart
│ └── admission.dart
├── gallery.dart
├── main.dart
├── result.dart
├── updates.dart
├── home.dart
└── student.dart
├── README.md
├── LICENSE
├── pubspec.yaml
└── pubspec.lock
/assets/1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/strbbrn/Fluttter-School-App/HEAD/assets/1.jpg
--------------------------------------------------------------------------------
/assets/2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/strbbrn/Fluttter-School-App/HEAD/assets/2.jpg
--------------------------------------------------------------------------------
/assets/3.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/strbbrn/Fluttter-School-App/HEAD/assets/3.JPG
--------------------------------------------------------------------------------
/assets/4.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/strbbrn/Fluttter-School-App/HEAD/assets/4.JPG
--------------------------------------------------------------------------------
/assets/5.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/strbbrn/Fluttter-School-App/HEAD/assets/5.jpg
--------------------------------------------------------------------------------
/assets/6.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/strbbrn/Fluttter-School-App/HEAD/assets/6.jpg
--------------------------------------------------------------------------------
/assets/7.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/strbbrn/Fluttter-School-App/HEAD/assets/7.jpg
--------------------------------------------------------------------------------
/assets/8.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/strbbrn/Fluttter-School-App/HEAD/assets/8.jpg
--------------------------------------------------------------------------------
/assets/9.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/strbbrn/Fluttter-School-App/HEAD/assets/9.jpg
--------------------------------------------------------------------------------
/assets/10.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/strbbrn/Fluttter-School-App/HEAD/assets/10.jpg
--------------------------------------------------------------------------------
/assets/bps.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/strbbrn/Fluttter-School-App/HEAD/assets/bps.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable/bps.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/strbbrn/Fluttter-School-App/HEAD/android/app/src/main/res/drawable/bps.png
--------------------------------------------------------------------------------
/android/gradle.properties:
--------------------------------------------------------------------------------
1 | android.enableJetifier=true
2 | android.useAndroidX=true
3 | org.gradle.jvmargs=-XX\:MaxHeapSize\=512m -Xmx512m
4 |
--------------------------------------------------------------------------------
/android/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/strbbrn/Fluttter-School-App/HEAD/android/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/strbbrn/Fluttter-School-App/HEAD/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/strbbrn/Fluttter-School-App/HEAD/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/strbbrn/Fluttter-School-App/HEAD/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/strbbrn/Fluttter-School-App/HEAD/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/strbbrn/Fluttter-School-App/HEAD/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Screenshot_2019-07-06-16-09-56-465_com.bpsplayschool.app.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/strbbrn/Fluttter-School-App/HEAD/Screenshot_2019-07-06-16-09-56-465_com.bpsplayschool.app.png
--------------------------------------------------------------------------------
/Screenshot_2019-07-06-16-10-02-448_com.bpsplayschool.app.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/strbbrn/Fluttter-School-App/HEAD/Screenshot_2019-07-06-16-10-02-448_com.bpsplayschool.app.png
--------------------------------------------------------------------------------
/Screenshot_2019-07-06-16-10-05-763_com.bpsplayschool.app.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/strbbrn/Fluttter-School-App/HEAD/Screenshot_2019-07-06-16-10-05-763_com.bpsplayschool.app.png
--------------------------------------------------------------------------------
/android/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Thu Apr 25 23:12:57 IST 2019
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 | distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip
7 |
--------------------------------------------------------------------------------
/android/app/src/debug/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/android/app/src/profile/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/android/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
--------------------------------------------------------------------------------
/android/app/src/main/java/com/example/school/MainActivity.java:
--------------------------------------------------------------------------------
1 | package com.example.school;
2 |
3 | import android.os.Bundle;
4 | import io.flutter.app.FlutterActivity;
5 | import io.flutter.plugins.GeneratedPluginRegistrant;
6 |
7 | public class MainActivity extends FlutterActivity {
8 | @Override
9 | protected void onCreate(Bundle savedInstanceState) {
10 | super.onCreate(savedInstanceState);
11 | GeneratedPluginRegistrant.registerWith(this);
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable/launch_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | -
8 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 |
3 | def flutterProjectRoot = rootProject.projectDir.parentFile.toPath()
4 |
5 | def plugins = new Properties()
6 | def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins')
7 | if (pluginsFile.exists()) {
8 | pluginsFile.withReader('UTF-8') { reader -> plugins.load(reader) }
9 | }
10 |
11 | plugins.each { name, path ->
12 | def pluginDirectory = flutterProjectRoot.resolve(path).resolve('android').toFile()
13 | include ":$name"
14 | project(":$name").projectDir = pluginDirectory
15 | }
16 |
--------------------------------------------------------------------------------
/lib/school/contact.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:flutter_webview_plugin/flutter_webview_plugin.dart';
3 | class Contact extends StatelessWidget {
4 | @override
5 | Widget build(BuildContext context) {
6 | return Scaffold(
7 |
8 | body:WebviewScaffold(
9 | appBar: AppBar(
10 | title: Text('Contact'),
11 | elevation: 2.0,
12 | ),
13 | url: 'https://example.com/contact.php',
14 | withJavascript: true,
15 |
16 |
17 | ) ,
18 | );
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/android/build.gradle:
--------------------------------------------------------------------------------
1 | buildscript {
2 | repositories {
3 | google()
4 | jcenter()
5 | }
6 |
7 | dependencies {
8 | classpath 'com.android.tools.build:gradle:3.4.0'
9 | }
10 | }
11 |
12 | allprojects {
13 | repositories {
14 | google()
15 | jcenter()
16 | }
17 | }
18 |
19 | rootProject.buildDir = '../build'
20 | subprojects {
21 | project.buildDir = "${rootProject.buildDir}/${project.name}"
22 | }
23 | subprojects {
24 | project.evaluationDependsOn(':app')
25 | }
26 |
27 | task clean(type: Delete) {
28 | delete rootProject.buildDir
29 | }
30 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Fluttter-School-App
2 | A School App based on Flutter Framework.
3 | mail us: skybirdwebmedia@gmail.com
4 | Demo(Dead):
5 | [https://play.google.com/store/apps/details?id=com.bpsplayschool.app&hl=en](https://play.google.com/store/apps/details?id=com.bpsplayschool.app&hl=en).
6 |
7 |
8 |
9 | ## 🌴 License
10 | **MIT**
11 |
12 | **You are welcome to use this however you wish within the MIT license, but please retain my credentials and links back to this repo.**
13 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2020 Shashi Kumar
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/lib/gallery.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | class GalleryPage extends StatelessWidget {
4 | @override
5 | Widget build(BuildContext context) {
6 | return Scaffold(
7 | appBar: AppBar(
8 | title: Text('Gallery'),
9 | elevation: 2.0,
10 | backgroundColor: Color.fromARGB(255, 255, 105, 180),
11 | ),
12 | body: Container(
13 | color: Colors.white30,
14 | child: new GridView.count(
15 | crossAxisCount: 2,
16 | childAspectRatio: 1.0,
17 | padding: const EdgeInsets.all(4.0),
18 | mainAxisSpacing: 4.0,
19 | crossAxisSpacing: 4.0,
20 | children: [
21 | 'assets/1.jpg',
22 | 'assets/2.jpg',
23 | 'assets/3.JPG',
24 | 'assets/4.JPG',
25 | 'assets/5.jpg',
26 | 'assets/6.jpg',
27 | 'assets/7.jpg',
28 | 'assets/8.jpg',
29 | 'assets/9.jpg',
30 | 'assets/10.jpg'
31 | ].map((String url) {
32 | return ClipRRect(
33 | borderRadius: BorderRadius.only(
34 | topLeft: Radius.circular(15.0),
35 | topRight: Radius.circular(15.0),
36 | bottomRight: Radius.circular(15.0),
37 | bottomLeft: Radius.circular(15.0)
38 | ),
39 | child: GridTile(
40 | child: new Image.asset(url, fit: BoxFit.cover),
41 | ),
42 |
43 | );
44 | }).toList()),
45 | ),
46 | );
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/android/app/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
9 |
10 |
14 |
21 |
25 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/android/app/src/main/java/io/flutter/plugins/GeneratedPluginRegistrant.java:
--------------------------------------------------------------------------------
1 | package io.flutter.plugins;
2 |
3 | import io.flutter.plugin.common.PluginRegistry;
4 | import com.pichillilorenzo.flutter_inappbrowser.InAppBrowserFlutterPlugin;
5 | import pt.tribeiro.flutter_plugin_pdf_viewer.FlutterPluginPdfViewerPlugin;
6 | import com.flutter_webview_plugin.FlutterWebviewPlugin;
7 | import io.flutter.plugins.googlemaps.GoogleMapsPlugin;
8 | import io.flutter.plugins.pathprovider.PathProviderPlugin;
9 | import com.tekartik.sqflite.SqflitePlugin;
10 | import io.flutter.plugins.urllauncher.UrlLauncherPlugin;
11 |
12 | /**
13 | * Generated file. Do not edit.
14 | */
15 | public final class GeneratedPluginRegistrant {
16 | public static void registerWith(PluginRegistry registry) {
17 | if (alreadyRegisteredWith(registry)) {
18 | return;
19 | }
20 | InAppBrowserFlutterPlugin.registerWith(registry.registrarFor("com.pichillilorenzo.flutter_inappbrowser.InAppBrowserFlutterPlugin"));
21 | FlutterPluginPdfViewerPlugin.registerWith(registry.registrarFor("pt.tribeiro.flutter_plugin_pdf_viewer.FlutterPluginPdfViewerPlugin"));
22 | FlutterWebviewPlugin.registerWith(registry.registrarFor("com.flutter_webview_plugin.FlutterWebviewPlugin"));
23 | GoogleMapsPlugin.registerWith(registry.registrarFor("io.flutter.plugins.googlemaps.GoogleMapsPlugin"));
24 | PathProviderPlugin.registerWith(registry.registrarFor("io.flutter.plugins.pathprovider.PathProviderPlugin"));
25 | SqflitePlugin.registerWith(registry.registrarFor("com.tekartik.sqflite.SqflitePlugin"));
26 | UrlLauncherPlugin.registerWith(registry.registrarFor("io.flutter.plugins.urllauncher.UrlLauncherPlugin"));
27 | }
28 |
29 | private static boolean alreadyRegisteredWith(PluginRegistry registry) {
30 | final String key = GeneratedPluginRegistrant.class.getCanonicalName();
31 | if (registry.hasPlugin(key)) {
32 | return true;
33 | }
34 | registry.registrarFor(key);
35 | return false;
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/lib/main.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:bottom_navy_bar/bottom_navy_bar.dart';
3 | import 'package:school/gallery.dart';
4 | import 'package:school/home.dart';
5 | import 'package:school/student.dart';
6 |
7 |
8 |
9 | void main() => runApp(MaterialApp(
10 | title: 'School',
11 | home: MyHomePage(),
12 | // theme: ThemeData(
13 | // brightness: Brightness.light,
14 | // primaryColor: Colors.lightBlue[800],
15 | // accentColor: Colors.cyan[600],
16 | // ),
17 | ));
18 |
19 | class MyHomePage extends StatefulWidget {
20 | @override
21 | _MyHomePageState createState() => _MyHomePageState();
22 | }
23 |
24 | class _MyHomePageState extends State {
25 | @override
26 | void initState(){
27 | super.initState();
28 |
29 |
30 | }
31 |
32 | int currentIndex = 0;
33 | final _widgetOptions = [
34 | Home(),
35 | GalleryPage(),
36 | Student(),
37 | ];
38 | @override
39 | Widget build(BuildContext context) {
40 | return Scaffold(
41 |
42 | body: Container(
43 | child: _widgetOptions.elementAt(currentIndex),
44 | decoration: new BoxDecoration(color: Colors.white),
45 | ),
46 | bottomNavigationBar: BottomNavyBar(
47 | onItemSelected: (index) => setState(() {
48 | currentIndex = index;
49 | }),
50 | items: [
51 | BottomNavyBarItem(
52 | icon: Icon(Icons.apps),
53 | title: Text('Home'),
54 | activeColor: Colors.red,
55 | ),
56 | BottomNavyBarItem(
57 | icon: Icon(Icons.image),
58 | title: Text('Gallery'),
59 | activeColor: Colors.purpleAccent,
60 | ),
61 | BottomNavyBarItem(
62 | icon: Icon(Icons.people),
63 | title: Text('Student'),
64 | activeColor: Colors.blue,
65 | )
66 | ],
67 | ),
68 | );
69 | }
70 | }
71 |
--------------------------------------------------------------------------------
/lib/result.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:flutter_webview_plugin/flutter_webview_plugin.dart';
3 |
4 |
5 | class ResultView extends StatefulWidget {
6 | ResultView(this.url);
7 | final String url;
8 |
9 | @override
10 | _ResultViewState createState() => _ResultViewState();
11 | }
12 |
13 | class _ResultViewState extends State {
14 |
15 | String path = 'https://example.com/frame.php?path=';
16 | double progress = 0;
17 | @override
18 | void initState() {
19 | super.initState();
20 | path += widget.url;
21 | print(path);
22 | }
23 |
24 | @override
25 | void dispose() {
26 | super.dispose();
27 | }
28 |
29 | @override
30 | Widget build(BuildContext context) {
31 | return Scaffold(
32 | appBar: AppBar(
33 | title: const Text('Result'),
34 | ),
35 | body: Container(
36 | child: Column(
37 | children: [
38 | (progress != 1.0) ? LinearProgressIndicator(value: progress) : null,
39 | Expanded(
40 | child: Container(
41 | margin: const EdgeInsets.all(0.0),
42 | decoration: BoxDecoration(
43 | border: Border.all(color: Colors.blueAccent)),
44 | child: WebviewScaffold(
45 | appBar: AppBar(
46 | title: Text("BPS PLAY SCHOOL"),
47 | ),
48 | url: path,
49 | scrollBar: true,
50 | withZoom: true,
51 | withLocalStorage: true,
52 | hidden: true,
53 | allowFileURLs: true,
54 | withJavascript: true,
55 |
56 | initialChild: Container(
57 | color: Colors.white,
58 | child: const Center(
59 | child: Text(
60 | 'Wait .....\n Checking Internet Connection',
61 | style: TextStyle(
62 | fontWeight: FontWeight.bold, fontSize: 20.0),
63 | ),
64 | ),
65 | ),
66 | )),
67 | ),
68 | ]
69 | )
70 | )
71 | );
72 | }
73 | }
74 |
--------------------------------------------------------------------------------
/lib/school/about.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | class About extends StatelessWidget {
4 | @override
5 | Widget build(BuildContext context) {
6 | return Scaffold(
7 | appBar: AppBar(
8 | title: Text('About'),
9 | elevation: 2.0,
10 | ),
11 | body: SingleChildScrollView(
12 | child: Column(
13 | children: [
14 | Padding(
15 | padding: EdgeInsets.all(3.0),
16 | ),
17 |
18 | Padding(
19 | padding: EdgeInsets.all(3.0),
20 | ),
21 | ClipRRect(
22 | borderRadius: BorderRadius.only(
23 | topLeft: Radius.circular(15.0),
24 | topRight: Radius.circular(15.0),
25 | bottomRight: Radius.circular(15.0),
26 | bottomLeft: Radius.circular(15.0)),
27 | child: Container(
28 | child: Image.asset('assets/1.jpg',
29 | width: MediaQuery.of(context).size.width / 1.023),
30 | ),
31 | ),
32 | Center(
33 | child: Container(
34 | margin: EdgeInsets.fromLTRB(10.0, 3.0, 10.0, 13.0),
35 | padding: EdgeInsets.all(3.0),
36 | child: Card(
37 | child: ListTile(
38 | title: Text(
39 | 'BPS PLAY SCHOOL is a well known school in Tatisilwai area.\nIt is established in month of feb. 2018.And now it is going to spread his education throughouot.The aim of the School is to literate all the children those who belong to remote village area. It is known fact that children do their most important learning before the age five. Up to this age, for kids each morning is the dawn of another amazing adventure. Considering this fact, our focus is only on developing academic skills, but also intellectual, emotional, linguistic, physical, social and moral skills that will ensure all-round development of children. We believe that children are active learners, who learn best from interacting with nature, other children and adults in child-centered activities. BPS PLAY SCHOOL provides caring and trusting environment in which children can flourish as individual. Our child-centered philosophy allows children to learn through play by exploring their environment. In order to stimulate a child\'s learning, we provide opportunities for the child to grow and develop while reading, listening and playing. Love and affection are the hallmarks of all these pursuits. The colorful and cheerful environment, child-friendly equipments, enticing toys and games at BPS PLAY SCHOOL help a child to listen and discover, imagine and create. Overall, BPS PLAY SCHOOL is not merely a school; it is a concept in education. Its a new dimension for an all round development for 2 to 6 years old children. ',
40 | style: TextStyle(fontSize: 18.0, fontFamily: "Roboto"),
41 | ),
42 | ),
43 | )),
44 | ),
45 | ],
46 | ),
47 | ),
48 | );
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/pubspec.yaml:
--------------------------------------------------------------------------------
1 | name: school
2 | description: A new Flutter project.
3 |
4 | # The following defines the version and build number for your application.
5 | # A version number is three numbers separated by dots, like 1.2.43
6 | # followed by an optional build number separated by a +.
7 | # Both the version and the builder number may be overridden in flutter
8 | # build by specifying --build-name and --build-number, respectively.
9 | # In Android, build-name is used as versionName while build-number used as versionCode.
10 | # Read more about Android versioning at https://developer.android.com/studio/publish/versioning
11 | # In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
12 | # Read more about iOS versioning at
13 | # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
14 | version: 1.0.0+1
15 |
16 | environment:
17 | sdk: ">=2.1.0 <3.0.0"
18 |
19 | dependencies:
20 | flutter:
21 | sdk: flutter
22 | carousel_slider: ^3.0.0
23 | bottom_navy_bar: ^3.0.0
24 | http: ^0.12.0+2
25 | flutter_webview_plugin: ^0.3.4
26 | path_provider: ^0.5.0+1
27 | flutter_inappbrowser: ^1.2.0
28 | url_launcher: ^5.0.3
29 | google_maps_flutter: ^0.5.16
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 | # The following adds the Cupertino Icons font to your application.
38 | # Use with the CupertinoIcons class for iOS style icons.
39 | cupertino_icons: ^0.1.2
40 |
41 |
42 | dev_dependencies:
43 | flutter_test:
44 | sdk: flutter
45 |
46 |
47 | # For information on the generic Dart part of this file, see the
48 | # following page: https://www.dartlang.org/tools/pub/pubspec
49 |
50 | # The following section is specific to Flutter.
51 | flutter:
52 |
53 | # The following line ensures that the Material Icons font is
54 | # included with your application, so that you can use the icons in
55 | # the material Icons class.
56 | uses-material-design: true
57 |
58 | # To add assets to your application, add an assets section, like this:
59 | assets:
60 | - assets/
61 |
62 |
63 | # An image asset can refer to one or more resolution-specific "variants", see
64 | # https://flutter.io/assets-and-images/#resolution-aware.
65 |
66 | # For details regarding adding assets from package dependencies, see
67 | # https://flutter.io/assets-and-images/#from-packages
68 |
69 | # To add custom fonts to your application, add a fonts section here,
70 | # in this "flutter" section. Each entry in this list should have a
71 | # "family" key with the font family name, and a "fonts" key with a
72 | # list giving the asset and other descriptors for the font. For
73 | # example:
74 | # fonts:
75 | # - family: Schyler
76 | # fonts:
77 | # - asset: fonts/Schyler-Regular.ttf
78 | # - asset: fonts/Schyler-Italic.ttf
79 | # style: italic
80 | # - family: Trajan Pro
81 | # fonts:
82 | # - asset: fonts/TrajanPro.ttf
83 | # - asset: fonts/TrajanPro_Bold.ttf
84 | # weight: 700
85 | #
86 | # For details regarding fonts from package dependencies,
87 | # see https://flutter.io/custom-fonts/#from-packages
88 |
--------------------------------------------------------------------------------
/android/app/build.gradle:
--------------------------------------------------------------------------------
1 | buildscript {
2 | repositories {
3 | // ...
4 | maven { url 'https://plugins.gradle.org/m2/' } // Gradle Plugin Portal
5 | }
6 |
7 | }
8 |
9 |
10 | def localProperties = new Properties()
11 | def localPropertiesFile = rootProject.file('local.properties')
12 | if (localPropertiesFile.exists()) {
13 | localPropertiesFile.withReader('UTF-8') { reader ->
14 | localProperties.load(reader)
15 | }
16 | }
17 |
18 | def flutterRoot = localProperties.getProperty('flutter.sdk')
19 | if (flutterRoot == null) {
20 | throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
21 | }
22 |
23 | def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
24 | if (flutterVersionCode == null) {
25 | flutterVersionCode = '1'
26 | }
27 |
28 | def flutterVersionName = localProperties.getProperty('flutter.versionName')
29 | if (flutterVersionName == null) {
30 | flutterVersionName = '1.0'
31 | }
32 |
33 |
34 | apply plugin: 'com.android.application'
35 | apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
36 |
37 | def keystoreProperties = new Properties()
38 | def keystorePropertiesFile = rootProject.file('key.properties')
39 | if (keystorePropertiesFile.exists()) {
40 | keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
41 | }
42 |
43 | android {
44 |
45 | compileSdkVersion 28
46 |
47 | lintOptions {
48 | disable 'InvalidPackage'
49 | checkReleaseBuilds false
50 | }
51 |
52 | defaultConfig {
53 | // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
54 | applicationId "com.bpsplayschool.app"
55 | minSdkVersion 17
56 | targetSdkVersion 28
57 | versionCode flutterVersionCode.toInteger()
58 | versionName flutterVersionName
59 | testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
60 | multiDexEnabled true
61 |
62 |
63 | }
64 | // dexOptions {
65 | // javaMaxHeapSize "4g"
66 | // preDexLibraries = false
67 | // }
68 |
69 | signingConfigs {
70 | release {
71 | keyAlias keystoreProperties['keyAlias']
72 | keyPassword keystoreProperties['keyPassword']
73 | storeFile file(keystoreProperties['storeFile'])
74 | storePassword keystoreProperties['storePassword']
75 | }
76 | }
77 | buildTypes {
78 | release {
79 | signingConfig signingConfigs.release
80 | ndk {
81 | abiFilters 'armeabi-v7a'
82 | }
83 | }
84 | }
85 |
86 |
87 | }
88 |
89 | flutter {
90 | source '../..'
91 | }
92 |
93 | dependencies {
94 | testImplementation 'junit:junit:4.12'
95 | androidTestImplementation 'androidx.test:runner:1.1.1'
96 | androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
97 | implementation 'androidx.multidex:multidex:2.0.1'
98 |
99 |
100 | }
101 |
--------------------------------------------------------------------------------
/lib/updates.dart:
--------------------------------------------------------------------------------
1 | import 'dart:convert';
2 | import 'package:flutter/material.dart';
3 | import 'package:http/http.dart' as http;
4 | import 'package:flutter/animation.dart';
5 |
6 | class Updates extends StatefulWidget {
7 | @override
8 | _UpdatesState createState() => _UpdatesState();
9 | }
10 |
11 | class _UpdatesState extends State with SingleTickerProviderStateMixin {
12 | ScrollController scrollCtrl = new ScrollController();
13 | AnimationController animateCtrl;
14 |
15 | List notices;
16 |
17 | //Future Notice Start//
18 | @override
19 | void initState() {
20 | double offset = 0.0;
21 | super.initState();
22 | this.getNotice();
23 |
24 | animateCtrl =
25 | new AnimationController(vsync: this, duration: Duration(seconds: 6))
26 | ..addListener(() {
27 | if (animateCtrl.isCompleted) animateCtrl.repeat();
28 | offset += 1.0;
29 | if (offset - 1 > scrollCtrl.offset) {
30 | offset = 0.0;
31 | }
32 | setState(() {
33 | scrollCtrl.jumpTo(offset);
34 | });
35 | });
36 | animateCtrl.forward();
37 | }
38 |
39 | Future getNotice() async {
40 | var response = await http.get(
41 | Uri.encodeFull(
42 | 'http://result.bpsplayschool.com/updates.php',
43 | ),
44 | headers: {'accepts': 'application/json'});
45 | var data = json.decode(response.body);
46 | //print(data['result'][0]['date']);
47 |
48 | print(data['result']);
49 | if (!mounted) return;
50 | setState(() {
51 | notices = data['result'];
52 | });
53 | }
54 |
55 | @override
56 | void dispose() {
57 | animateCtrl.dispose();
58 | super.dispose();
59 | }
60 |
61 | //Future Notice End//
62 | @override
63 | Widget build(BuildContext context) {
64 | return Scaffold(
65 | backgroundColor: Colors.white,
66 | appBar: AppBar(
67 | leading: Image.asset('assets/bps.png'),
68 | title: Text('BPS Play School'),
69 | elevation: 2.0,
70 | backgroundColor: Color.fromARGB(255, 255, 0, 0),
71 | ),
72 | body: Column(
73 | mainAxisSize: MainAxisSize.min,
74 | children: [
75 | Padding(
76 | padding: EdgeInsets.all(2.0),
77 | ),
78 | ClipRRect(
79 | borderRadius: BorderRadius.only(
80 | topLeft: Radius.circular(15.0),
81 | topRight: Radius.circular(15.0),
82 | bottomRight: Radius.circular(15.0),
83 | bottomLeft: Radius.circular(15.0)),
84 | child: Container(
85 | height: 50.0,
86 | width: MediaQuery.of(context).size.width / 1.029,
87 | color: Colors.amber,
88 | child: Center(
89 | child: Text(
90 | 'Update Board',
91 | style: TextStyle(fontSize: 18.0, color: Colors.white),
92 | )),
93 | ),
94 | ),
95 | Expanded(
96 | child: notices == null
97 | ? Center(child: Text('0 Updates Available'))
98 | : ListView.builder(
99 | controller: scrollCtrl,
100 | shrinkWrap: true,
101 | physics: ScrollPhysics(),
102 | itemCount: notices == null ? 0 : notices.length,
103 | itemBuilder: (BuildContext context, int index) {
104 | return Card(
105 | clipBehavior: Clip.hardEdge,
106 | child: ListTile(
107 | leading: Icon(Icons.av_timer),
108 | title: Text(
109 | notices[index]['updates'],
110 | style: TextStyle(fontStyle: FontStyle.italic),
111 | ),
112 | subtitle:
113 | Text('Posted On: ' + notices[index]['date']),
114 | ),
115 | );
116 | },
117 | ),
118 | ),
119 | ],
120 | ),
121 | );
122 | }
123 | }
124 |
--------------------------------------------------------------------------------
/lib/school/admission.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:flutter_webview_plugin/flutter_webview_plugin.dart';
3 |
4 | class Admission extends StatefulWidget {
5 |
6 | @override
7 | _AdmissionState createState() => _AdmissionState();
8 |
9 | }
10 | class _AdmissionState extends State {
11 | final flutterWebviewPlugin = new FlutterWebviewPlugin();
12 | @override
13 | void initState() {
14 | super.initState();
15 | flutterWebviewPlugin.close();
16 | }
17 |
18 | @override
19 | Widget build(BuildContext context) {
20 | return Scaffold(
21 | appBar: AppBar(
22 | title: Text('Admission'),
23 | elevation: 2.0,
24 | ),
25 | body: Container(
26 | padding: EdgeInsets.all(3.0),
27 | margin: EdgeInsets.all(5.0),
28 |
29 | child: Stack(
30 | // mainAxisAlignment: MainAxisAlignment.center,
31 | // crossAxisAlignment: CrossAxisAlignment.center,
32 | children: [
33 | ClipRRect(
34 | borderRadius: BorderRadius.only(
35 | topLeft: Radius.circular(15.0),
36 | topRight: Radius.circular(15.0),
37 | bottomRight: Radius.circular(15.0),
38 | bottomLeft: Radius.circular(15.0)),
39 | child: Container(
40 | height: 250.0,
41 | width: MediaQuery.of(context).size.width / 1.029,
42 | color: Colors.amber,
43 | child:Image.asset('assets/10.jpg',fit: BoxFit.cover,width: MediaQuery.of(context).size.width,),
44 | ),
45 | ),
46 | // Padding(
47 | // padding: EdgeInsets.fromLTRB(0.0, 0.0, 0.0, 0.0),
48 | // ),
49 | Container(
50 | margin: EdgeInsets.fromLTRB(30.0, 120.0, 0.0, 0.0),
51 | padding: EdgeInsets.all(5.0),
52 | width: MediaQuery.of(context).size.width/1.2,
53 | color: Colors.white,
54 | child: ListView(
55 | children: [
56 | Card(child: ListTile(
57 | title: Text('You can Registered Online from our official website.(bpsplayschool.com)',style: TextStyle(fontSize: 16.0,fontFamily: "Roboto")),
58 | ),),
59 | Card(child: ListTile(
60 | title: Text('Since the seats are limited you should hurry up! to get admission.'),
61 | ),),
62 | Card(child: ListTile(
63 | title: Text('Registered users must come with their registered slip and application form which you can get from our site ->Admission ->Application Form.'),
64 | ),),
65 | Card(child: ListTile(
66 | title: Text('For direct admission parents can contact to our administration office.'),
67 | ),),
68 | Card(child: ListTile(
69 | title: Text('Application form is available on our office.'),
70 | ),),
71 | Card(child: ListTile(
72 | title: Text('For any queries about admission you can contact us from our email and through our mobile contact number which is given below.'),
73 | ),),
74 |
75 | Padding(
76 | padding: EdgeInsets.fromLTRB(0.0, 0.0, 0.0, 5.0),
77 | ),
78 | ClipRRect(
79 | borderRadius: BorderRadius.only(
80 | topLeft: Radius.circular(15.0),
81 | topRight: Radius.circular(15.0),
82 | bottomRight: Radius.circular(15.0),
83 | bottomLeft: Radius.circular(15.0)),
84 | child: Container(
85 | height: 50.0,
86 | width: MediaQuery.of(context).size.width / 1.029,
87 | color: Colors.amber,
88 | child: Center(
89 | child: Text(
90 | 'Documents Required',
91 | style: TextStyle(fontSize: 20.0, color: Colors.white),
92 | )),
93 | ),
94 | ),
95 | Padding(
96 | padding: EdgeInsets.fromLTRB(0.0, 8.0, 0.0, 0.0),
97 | ),
98 | Card(child: ListTile(
99 | title: Text('For Online registered user they should bring the application form and registration slip.'),
100 | ),),
101 | Card(child: ListTile(
102 | title: Text('For direct admission from will be available on office'),
103 | ),),
104 | Card(child: ListTile(
105 | title: Text('Parents must bring their AADHAAR CARD.'),
106 | ),),
107 | Card(child: ListTile(
108 | title: Text('Two Passport size of children is required.'),
109 | ),),
110 | Card(child: ListTile(
111 | title: Text('Parents must come with their children and parents also.'),
112 | ),),
113 | Card(child: ListTile(
114 | title: Text('ADMISSSION FEE will collected during form submission.'),
115 | ),),
116 | Card(child: ListTile(
117 | title: Text('You can get fee detail from our office.'),
118 | ),),
119 | Card(child: ListTile(
120 | title: Text('All the mandetory documents like TC and character certificate is required for admission above the nursery.'),
121 | ),),
122 |
123 | Center(
124 | child: RaisedButton(
125 | onPressed: () {
126 | Navigator.push(
127 | context,
128 | MaterialPageRoute(
129 | builder: (context) => WebviewScaffold(
130 | appBar: AppBar(
131 | title: Text("BPS PLAY SCHOOL"),
132 | ),
133 | url:
134 | 'https://example.com/applicationform.php',
135 | scrollBar: true,
136 | withZoom: true,
137 | withLocalStorage: true,
138 | hidden: true,
139 | initialChild: Container(
140 | color: Colors.white,
141 | child: const Center(
142 | child: Text('Loading..',style: TextStyle(fontFamily: "Roboto",fontWeight: FontWeight.bold),),
143 | ),
144 | ),
145 | )));
146 |
147 | },
148 | child: Text(
149 | 'Apply Now',
150 | style: TextStyle(fontSize: 20.0,color: Colors.white,fontFamily: "Roboto"),
151 | ),
152 | color: Colors.red,
153 | clipBehavior: Clip.antiAlias,
154 | ),
155 | )
156 | ],
157 | ),
158 | )
159 | ],
160 | ),
161 |
162 | ),
163 | );
164 | }
165 | }
166 |
--------------------------------------------------------------------------------
/pubspec.lock:
--------------------------------------------------------------------------------
1 | # Generated by pub
2 | # See https://www.dartlang.org/tools/pub/glossary#lockfile
3 | packages:
4 | async:
5 | dependency: transitive
6 | description:
7 | name: async
8 | url: "https://pub.dartlang.org"
9 | source: hosted
10 | version: "2.1.0"
11 | boolean_selector:
12 | dependency: transitive
13 | description:
14 | name: boolean_selector
15 | url: "https://pub.dartlang.org"
16 | source: hosted
17 | version: "1.0.4"
18 | bottom_navy_bar:
19 | dependency: "direct main"
20 | description:
21 | name: bottom_navy_bar
22 | url: "https://pub.dartlang.org"
23 | source: hosted
24 | version: "3.0.0"
25 | carousel_slider:
26 | dependency: "direct main"
27 | description:
28 | name: carousel_slider
29 | url: "https://pub.dartlang.org"
30 | source: hosted
31 | version: "1.3.0"
32 | charcode:
33 | dependency: transitive
34 | description:
35 | name: charcode
36 | url: "https://pub.dartlang.org"
37 | source: hosted
38 | version: "1.1.2"
39 | collection:
40 | dependency: transitive
41 | description:
42 | name: collection
43 | url: "https://pub.dartlang.org"
44 | source: hosted
45 | version: "1.14.11"
46 | convert:
47 | dependency: transitive
48 | description:
49 | name: convert
50 | url: "https://pub.dartlang.org"
51 | source: hosted
52 | version: "2.1.1"
53 | crypto:
54 | dependency: transitive
55 | description:
56 | name: crypto
57 | url: "https://pub.dartlang.org"
58 | source: hosted
59 | version: "2.0.6"
60 | cupertino_icons:
61 | dependency: "direct main"
62 | description:
63 | name: cupertino_icons
64 | url: "https://pub.dartlang.org"
65 | source: hosted
66 | version: "0.1.2"
67 | flutter:
68 | dependency: "direct main"
69 | description: flutter
70 | source: sdk
71 | version: "0.0.0"
72 | flutter_advanced_networkimage:
73 | dependency: transitive
74 | description:
75 | name: flutter_advanced_networkimage
76 | url: "https://pub.dartlang.org"
77 | source: hosted
78 | version: "0.4.15"
79 | flutter_cache_manager:
80 | dependency: transitive
81 | description:
82 | name: flutter_cache_manager
83 | url: "https://pub.dartlang.org"
84 | source: hosted
85 | version: "0.3.2"
86 | flutter_inappbrowser:
87 | dependency: "direct main"
88 | description:
89 | name: flutter_inappbrowser
90 | url: "https://pub.dartlang.org"
91 | source: hosted
92 | version: "1.2.0"
93 | flutter_plugin_pdf_viewer:
94 | dependency: "direct main"
95 | description:
96 | name: flutter_plugin_pdf_viewer
97 | url: "https://pub.dartlang.org"
98 | source: hosted
99 | version: "1.0.6"
100 | flutter_svg:
101 | dependency: transitive
102 | description:
103 | name: flutter_svg
104 | url: "https://pub.dartlang.org"
105 | source: hosted
106 | version: "0.12.4+1"
107 | flutter_test:
108 | dependency: "direct dev"
109 | description: flutter
110 | source: sdk
111 | version: "0.0.0"
112 | flutter_webview_plugin:
113 | dependency: "direct main"
114 | description:
115 | name: flutter_webview_plugin
116 | url: "https://pub.dartlang.org"
117 | source: hosted
118 | version: "0.3.4"
119 | google_maps_flutter:
120 | dependency: "direct main"
121 | description:
122 | name: google_maps_flutter
123 | url: "https://pub.dartlang.org"
124 | source: hosted
125 | version: "0.5.16"
126 | http:
127 | dependency: "direct main"
128 | description:
129 | name: http
130 | url: "https://pub.dartlang.org"
131 | source: hosted
132 | version: "0.12.0+2"
133 | http_parser:
134 | dependency: transitive
135 | description:
136 | name: http_parser
137 | url: "https://pub.dartlang.org"
138 | source: hosted
139 | version: "3.1.3"
140 | infinite_listview:
141 | dependency: transitive
142 | description:
143 | name: infinite_listview
144 | url: "https://pub.dartlang.org"
145 | source: hosted
146 | version: "1.0.0"
147 | matcher:
148 | dependency: transitive
149 | description:
150 | name: matcher
151 | url: "https://pub.dartlang.org"
152 | source: hosted
153 | version: "0.12.5"
154 | meta:
155 | dependency: transitive
156 | description:
157 | name: meta
158 | url: "https://pub.dartlang.org"
159 | source: hosted
160 | version: "1.1.6"
161 | mime:
162 | dependency: transitive
163 | description:
164 | name: mime
165 | url: "https://pub.dartlang.org"
166 | source: hosted
167 | version: "0.9.6+2"
168 | numberpicker:
169 | dependency: transitive
170 | description:
171 | name: numberpicker
172 | url: "https://pub.dartlang.org"
173 | source: hosted
174 | version: "1.0.0"
175 | path:
176 | dependency: transitive
177 | description:
178 | name: path
179 | url: "https://pub.dartlang.org"
180 | source: hosted
181 | version: "1.6.2"
182 | path_drawing:
183 | dependency: transitive
184 | description:
185 | name: path_drawing
186 | url: "https://pub.dartlang.org"
187 | source: hosted
188 | version: "0.4.1"
189 | path_parsing:
190 | dependency: transitive
191 | description:
192 | name: path_parsing
193 | url: "https://pub.dartlang.org"
194 | source: hosted
195 | version: "0.1.4"
196 | path_provider:
197 | dependency: "direct main"
198 | description:
199 | name: path_provider
200 | url: "https://pub.dartlang.org"
201 | source: hosted
202 | version: "0.5.0+1"
203 | pedantic:
204 | dependency: transitive
205 | description:
206 | name: pedantic
207 | url: "https://pub.dartlang.org"
208 | source: hosted
209 | version: "1.5.0"
210 | petitparser:
211 | dependency: transitive
212 | description:
213 | name: petitparser
214 | url: "https://pub.dartlang.org"
215 | source: hosted
216 | version: "2.2.1"
217 | quiver:
218 | dependency: transitive
219 | description:
220 | name: quiver
221 | url: "https://pub.dartlang.org"
222 | source: hosted
223 | version: "2.0.2"
224 | rxdart:
225 | dependency: transitive
226 | description:
227 | name: rxdart
228 | url: "https://pub.dartlang.org"
229 | source: hosted
230 | version: "0.21.0"
231 | sky_engine:
232 | dependency: transitive
233 | description: flutter
234 | source: sdk
235 | version: "0.0.99"
236 | source_span:
237 | dependency: transitive
238 | description:
239 | name: source_span
240 | url: "https://pub.dartlang.org"
241 | source: hosted
242 | version: "1.5.5"
243 | sqflite:
244 | dependency: transitive
245 | description:
246 | name: sqflite
247 | url: "https://pub.dartlang.org"
248 | source: hosted
249 | version: "1.1.5"
250 | stack_trace:
251 | dependency: transitive
252 | description:
253 | name: stack_trace
254 | url: "https://pub.dartlang.org"
255 | source: hosted
256 | version: "1.9.3"
257 | stream_channel:
258 | dependency: transitive
259 | description:
260 | name: stream_channel
261 | url: "https://pub.dartlang.org"
262 | source: hosted
263 | version: "2.0.0"
264 | string_scanner:
265 | dependency: transitive
266 | description:
267 | name: string_scanner
268 | url: "https://pub.dartlang.org"
269 | source: hosted
270 | version: "1.0.4"
271 | synchronized:
272 | dependency: transitive
273 | description:
274 | name: synchronized
275 | url: "https://pub.dartlang.org"
276 | source: hosted
277 | version: "2.1.0"
278 | term_glyph:
279 | dependency: transitive
280 | description:
281 | name: term_glyph
282 | url: "https://pub.dartlang.org"
283 | source: hosted
284 | version: "1.1.0"
285 | test_api:
286 | dependency: transitive
287 | description:
288 | name: test_api
289 | url: "https://pub.dartlang.org"
290 | source: hosted
291 | version: "0.2.4"
292 | typed_data:
293 | dependency: transitive
294 | description:
295 | name: typed_data
296 | url: "https://pub.dartlang.org"
297 | source: hosted
298 | version: "1.1.6"
299 | url_launcher:
300 | dependency: "direct main"
301 | description:
302 | name: url_launcher
303 | url: "https://pub.dartlang.org"
304 | source: hosted
305 | version: "5.0.3"
306 | uuid:
307 | dependency: transitive
308 | description:
309 | name: uuid
310 | url: "https://pub.dartlang.org"
311 | source: hosted
312 | version: "2.0.1"
313 | vector_math:
314 | dependency: transitive
315 | description:
316 | name: vector_math
317 | url: "https://pub.dartlang.org"
318 | source: hosted
319 | version: "2.0.8"
320 | xml:
321 | dependency: transitive
322 | description:
323 | name: xml
324 | url: "https://pub.dartlang.org"
325 | source: hosted
326 | version: "3.4.1"
327 | sdks:
328 | dart: ">=2.2.0 <3.0.0"
329 | flutter: ">=1.5.0 <2.0.0"
330 |
--------------------------------------------------------------------------------
/lib/home.dart:
--------------------------------------------------------------------------------
1 | import 'dart:convert';
2 | import 'package:flutter/material.dart';
3 | import 'package:carousel_slider/carousel_slider.dart';
4 | import 'package:flutter_webview_plugin/flutter_webview_plugin.dart';
5 | import 'package:school/school/about.dart';
6 | import 'package:school/school/admission.dart';
7 | import 'package:school/school/contact.dart';
8 | import 'package:http/http.dart' as http;
9 | import 'package:flutter/animation.dart';
10 | import 'package:url_launcher/url_launcher.dart';
11 |
12 | var green = Color(0xFF4caf6a);
13 | var greenLight = Color(0xFFd8ebde);
14 |
15 | var red = Color(0xFFf36169);
16 | var redLight = Color(0xFFf2dcdf);
17 |
18 | var blue = Color(0xFF398bcf);
19 | var blueLight = Color(0xFFc1dbee);
20 |
21 | final List imgList = [
22 | 'assets/8.jpg',
23 | 'assets/6.jpg',
24 | 'assets/4.JPG',
25 | 'assets/5.jpg',
26 | 'assets/9.jpg'
27 | ];
28 |
29 | final List child = map(
30 | imgList,
31 | (index, i) {
32 | return Container(
33 | margin: EdgeInsets.all(5.0),
34 | child: ClipRRect(
35 | borderRadius: BorderRadius.all(Radius.circular(5.0)),
36 | child: Stack(children: [
37 | Image.asset(i, fit: BoxFit.cover, width: 1000.0),
38 | Positioned(
39 | bottom: 0.0,
40 | left: 0.0,
41 | right: 0.0,
42 | child: Container(
43 | decoration: BoxDecoration(
44 | gradient: LinearGradient(
45 | colors: [
46 | Color.fromARGB(200, 0, 0, 0),
47 | Color.fromARGB(0, 0, 0, 0)
48 | ],
49 | begin: Alignment.bottomCenter,
50 | end: Alignment.topCenter,
51 | ),
52 | ),
53 | padding: EdgeInsets.symmetric(vertical: 10.0, horizontal: 20.0),
54 | child: Text(
55 | 'BPS PLAY SCHOOL',
56 | style: TextStyle(
57 | color: Colors.white,
58 | fontSize: 20.0,
59 | fontWeight: FontWeight.bold,
60 | ),
61 | ),
62 | ),
63 | ),
64 | ]),
65 | ),
66 | );
67 | },
68 | ).toList();
69 |
70 | List map(List list, Function handler) {
71 | List result = [];
72 | for (var i = 0; i < list.length; i++) {
73 | result.add(handler(i, list[i]));
74 | }
75 |
76 | return result;
77 | }
78 |
79 | class Home extends StatefulWidget {
80 | @override
81 | _HomeState createState() => _HomeState();
82 | }
83 |
84 | class _HomeState extends State with SingleTickerProviderStateMixin {
85 | ScrollController scrollCtrl = new ScrollController();
86 | AnimationController animateCtrl;
87 | Choice _selectedChoice = choices[0];
88 | int _current = 0;
89 | //Demo notice
90 | //Local Json Data
91 | String demoNotice =
92 | '{"tags": [{"name": "School closed", "date": "16/05/2021"}, {"name": "Lockdown", "date": "25/03/2020"}, {"name": "Result Published", "date": "8/02/2020"}]}';
93 |
94 | List notices;
95 | final flutterWebviewPlugin = FlutterWebviewPlugin();
96 | //Future Notice Start//
97 | @override
98 | void initState() {
99 | this.getNotice();
100 |
101 | double offset = 0.0;
102 | animateCtrl =
103 | new AnimationController(vsync: this, duration: Duration(seconds: 6))
104 | ..addListener(() {
105 | if (scrollCtrl.hasClients) {
106 | if (animateCtrl.isCompleted) animateCtrl.repeat();
107 | offset += 1.0;
108 | if (offset - 1 > scrollCtrl.offset) {
109 | offset = 0.0;
110 | }
111 | setState(() {
112 | scrollCtrl.jumpTo(offset);
113 | });
114 | }
115 | });
116 | animateCtrl.forward();
117 | super.initState();
118 |
119 | flutterWebviewPlugin.close();
120 | flutterWebviewPlugin.onUrlChanged.listen((String url) {});
121 | }
122 |
123 | Future getNotice() async {
124 | var data = json.decode(demoNotice);
125 | //print(data['result'][0]['date']);
126 |
127 | if (!mounted) return;
128 | setState(() {
129 | notices = data['tags'];
130 | });
131 | //do your stuff here req and decode the response
132 | }
133 |
134 | @override
135 | void dispose() {
136 | animateCtrl.dispose();
137 | super.dispose();
138 | flutterWebviewPlugin.dispose();
139 | }
140 |
141 | //Future Notice End//
142 | void _select(Choice choice) {
143 | // Causes the app to rebuild with the new _selectedChoice.
144 | _launchURL();
145 | }
146 |
147 | canLaunch(String url) {
148 | if (url.length > 0)
149 | return true;
150 | else
151 | return false;
152 | }
153 |
154 | _launchURL() async {
155 | const url = 'https://example.com/privacy_policy.php';
156 | if (await canLaunch(url)) {
157 | await launch(url);
158 | } else {
159 | throw 'Could not launch $url';
160 | }
161 | }
162 |
163 | @override
164 | Widget build(BuildContext context) {
165 | return Scaffold(
166 | backgroundColor: Colors.white,
167 | appBar: AppBar(
168 | leading: Image.asset('assets/bps.png'),
169 | title: Text('BPS Play School'),
170 | actions: [
171 | // action button
172 |
173 | // overflow menu
174 | PopupMenuButton(
175 | onSelected: _select,
176 | itemBuilder: (BuildContext context) {
177 | return choices.map((Choice choice) {
178 | return PopupMenuItem(
179 | value: choice,
180 | child: Text(choice.title),
181 | );
182 | }).toList();
183 | },
184 | ),
185 | ],
186 | elevation: 2.0,
187 | backgroundColor: Color.fromARGB(255, 255, 0, 0),
188 | ),
189 | body: Column(
190 | mainAxisSize: MainAxisSize.min,
191 | children: [
192 | Stack(children: [
193 | CarouselSlider(
194 | items: child,
195 | options: CarouselOptions(
196 | aspectRatio: 2.0,
197 | autoPlay: true,
198 | onPageChanged: (index, reason) {
199 | setState(() {
200 | _current = index;
201 | });
202 | },
203 | ),
204 | ),
205 | Positioned(
206 | top: 150.0,
207 | left: 0.0,
208 | right: 0.0,
209 | child: Row(
210 | mainAxisAlignment: MainAxisAlignment.center,
211 | children: map(imgList, (index, url) {
212 | return Container(
213 | width: 8.0,
214 | height: 8.0,
215 | margin:
216 | EdgeInsets.symmetric(vertical: 10.0, horizontal: 2.0),
217 | decoration: BoxDecoration(
218 | shape: BoxShape.circle,
219 | color: _current == index
220 | ? Color.fromRGBO(0, 0, 0, 0.9)
221 | : Color.fromRGBO(0, 0, 0, 0.4)),
222 | );
223 | }),
224 | ))
225 | ]),
226 | Padding(
227 | padding: const EdgeInsets.symmetric(horizontal: 8.0),
228 | child: Wrap(
229 | spacing: 8.0,
230 | runSpacing: 8.0,
231 | direction: Axis.horizontal,
232 | children: [
233 | ClipRRect(
234 | borderRadius: BorderRadius.only(
235 | topLeft: Radius.circular(15.0),
236 | topRight: Radius.circular(15.0),
237 | bottomRight: Radius.circular(15.0),
238 | ),
239 | child: Container(
240 | height: 92.0,
241 | width: 104.0,
242 | color: greenLight,
243 | child: InkWell(
244 | onTap: () {
245 | Navigator.push(
246 | context,
247 | MaterialPageRoute(
248 | builder: (context) => Admission()));
249 | },
250 | child: Column(
251 | mainAxisAlignment: MainAxisAlignment.center,
252 | children: [
253 | Icon(
254 | Icons.person,
255 | color: green,
256 | ),
257 | SizedBox(
258 | height: 4.0,
259 | ),
260 | Text(
261 | 'Admission',
262 | style: TextStyle(
263 | color: green, fontWeight: FontWeight.w500),
264 | )
265 | ],
266 | ),
267 | ),
268 | ),
269 | ),
270 | ClipRRect(
271 | borderRadius: BorderRadius.only(
272 | topLeft: Radius.circular(15.0),
273 | topRight: Radius.circular(15.0),
274 | bottomRight: Radius.circular(15.0),
275 | ),
276 | child: Container(
277 | height: 92.0,
278 | width: 104.0,
279 | color: redLight,
280 | child: InkWell(
281 | onTap: () {
282 | Navigator.push(context,
283 | MaterialPageRoute(builder: (context) => About()));
284 | },
285 | child: Column(
286 | mainAxisAlignment: MainAxisAlignment.center,
287 | children: [
288 | Icon(
289 | Icons.school,
290 | color: red,
291 | ),
292 | SizedBox(
293 | height: 4.0,
294 | ),
295 | Text(
296 | 'About',
297 | style: TextStyle(
298 | color: red, fontWeight: FontWeight.w500),
299 | )
300 | ],
301 | ),
302 | ),
303 | ),
304 | ),
305 | ClipRRect(
306 | borderRadius: BorderRadius.only(
307 | topLeft: Radius.circular(15.0),
308 | topRight: Radius.circular(15.0),
309 | bottomRight: Radius.circular(15.0),
310 | ),
311 | child: Container(
312 | height: 92.0,
313 | width: 104.0,
314 | color: blueLight,
315 | child: InkWell(
316 | onTap: () {
317 | Navigator.push(context,
318 | MaterialPageRoute(builder: (context) => Contact()));
319 | },
320 | child: Column(
321 | mainAxisAlignment: MainAxisAlignment.center,
322 | children: [
323 | Icon(
324 | Icons.contact_phone,
325 | color: blue,
326 | ),
327 | SizedBox(
328 | height: 4.0,
329 | ),
330 | Text(
331 | 'Contact',
332 | style: TextStyle(
333 | color: blue, fontWeight: FontWeight.w500),
334 | )
335 | ],
336 | ),
337 | ),
338 | ),
339 | ),
340 | ],
341 | ),
342 | ),
343 | Padding(
344 | padding: EdgeInsets.all(2.0),
345 | ),
346 | ClipRRect(
347 | borderRadius: BorderRadius.only(
348 | topLeft: Radius.circular(15.0),
349 | topRight: Radius.circular(15.0),
350 | bottomRight: Radius.circular(15.0),
351 | bottomLeft: Radius.circular(15.0)),
352 | child: Container(
353 | height: 50.0,
354 | width: MediaQuery.of(context).size.width / 1.029,
355 | color: Colors.amber,
356 | child: Center(
357 | child: Text(
358 | 'Notice Board',
359 | style: TextStyle(fontSize: 18.0, color: Colors.white),
360 | )),
361 | ),
362 | ),
363 | Expanded(
364 | child: notices == null
365 | ? Center(child: Text('0 Notice Available'))
366 | : ListView.builder(
367 | itemCount: notices == null ? 0 : notices.length,
368 | //itemCount: 3,
369 | itemBuilder: (BuildContext context, int index) {
370 | return Card(
371 | clipBehavior: Clip.hardEdge,
372 | child: ListTile(
373 | leading: Icon(Icons.av_timer),
374 | title: Text(
375 | notices[index]['name'],
376 | style: TextStyle(fontStyle: FontStyle.italic),
377 | ),
378 | subtitle:
379 | Text('Posted On: ' + notices[index]['date']),
380 | ),
381 | );
382 | },
383 | ),
384 | ),
385 | ],
386 | ),
387 | );
388 | }
389 | }
390 |
391 | class Choice {
392 | const Choice({this.title, this.icon});
393 |
394 | final String title;
395 | final IconData icon;
396 | }
397 |
398 | const List choices = const [
399 | const Choice(title: 'Privacy Policy', icon: Icons.security),
400 | ];
401 |
--------------------------------------------------------------------------------
/lib/student.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:flutter_webview_plugin/flutter_webview_plugin.dart';
3 | import 'package:school/home.dart' ;
4 | import 'package:flutter_inappbrowser/flutter_inappbrowser.dart';
5 | import 'package:school/updates.dart';
6 |
7 |
8 |
9 | var green = Color(0xFF4caf6a);
10 | var greenLight = Color(0xFFd8ebde);
11 |
12 | var red = Color(0xFFf36169);
13 | var redLight = Color(0xFFf2dcdf);
14 |
15 | var blue = Color(0xFF398bcf);
16 | var blueLight = Color(0xFFc1dbee);
17 |
18 | class Student extends StatefulWidget {
19 | @override
20 | _StudentState createState() => _StudentState();
21 | }
22 |
23 | class _StudentState extends State {
24 | final flutterWebviewPlugin = new FlutterWebviewPlugin();
25 |
26 | @override
27 | void initState() {
28 | super.initState();
29 | flutterWebviewPlugin.close();
30 | flutterWebviewPlugin.onUrlChanged.listen((String url) {
31 |
32 | });
33 | }
34 |
35 | @override
36 | void dispose() {
37 | super.dispose();
38 | flutterWebviewPlugin.dispose();
39 | }
40 |
41 | @override
42 | Widget build(BuildContext context) {
43 | return Scaffold(
44 | appBar: AppBar(
45 | title: Text('Student'),
46 | elevation: 2.0,
47 | backgroundColor: Color.fromARGB(255, 0, 191, 255),
48 | ),
49 | body: Column(
50 | children: [
51 | Image.asset(
52 | 'assets/1.jpg',
53 | width: MediaQuery.of(context).size.width,
54 | ),
55 | Padding(
56 | padding: EdgeInsets.fromLTRB(0.0, 10.0, 0.0, 0.0),
57 | ),
58 | Padding(
59 | padding: const EdgeInsets.symmetric(horizontal: 8.0),
60 | child: Wrap(
61 | spacing: 8.0,
62 | runSpacing: 8.0,
63 | direction: Axis.horizontal,
64 | children: [
65 | ClipRRect(
66 | borderRadius: BorderRadius.only(
67 | topLeft: Radius.circular(15.0),
68 | topRight: Radius.circular(15.0),
69 | bottomRight: Radius.circular(15.0),
70 | ),
71 | child: Container(
72 | height: 92.0,
73 | width: 104.0,
74 | color: greenLight,
75 | child: InkWell(
76 | onTap: () {
77 | Navigator.push(
78 | context,
79 | MaterialPageRoute(
80 | builder: (context) => InAppWebView(
81 | initialUrl: 'http://result.bpsplayschool.com/find-result.php',
82 | initialOptions: {
83 | "javaScriptEnabled":true,
84 | "transparentBackground":true,
85 | "useWideViewPort":true,
86 | "displayZoomControls":true,
87 |
88 | },
89 | )));
90 | },
91 | child: Column(
92 | mainAxisAlignment: MainAxisAlignment.center,
93 | children: [
94 | Icon(
95 | Icons.person,
96 | color: green,
97 | ),
98 | SizedBox(
99 | height: 4.0,
100 | ),
101 | Text(
102 | 'Result',
103 | style: TextStyle(
104 | color: green, fontWeight: FontWeight.w500),
105 | )
106 | ],
107 | ),
108 | ),
109 | ),
110 | ),
111 | ClipRRect(
112 | borderRadius: BorderRadius.only(
113 | topLeft: Radius.circular(15.0),
114 | topRight: Radius.circular(15.0),
115 | bottomRight: Radius.circular(15.0),
116 | ),
117 | child: Container(
118 | height: 92.0,
119 | width: 104.0,
120 | color: redLight,
121 | child: InkWell(
122 | onTap: () {
123 | Navigator.push(context,
124 | MaterialPageRoute(builder: (context) => Home()));
125 | },
126 | child: Column(
127 | mainAxisAlignment: MainAxisAlignment.center,
128 | children: [
129 | Icon(
130 | Icons.timelapse,
131 | color: red,
132 | ),
133 | SizedBox(
134 | height: 4.0,
135 | ),
136 | Text(
137 | 'Notice',
138 | style: TextStyle(
139 | color: red, fontWeight: FontWeight.w500),
140 | )
141 | ],
142 | ),
143 | ),
144 | ),
145 | ),
146 | ClipRRect(
147 | borderRadius: BorderRadius.only(
148 | topLeft: Radius.circular(15.0),
149 | topRight: Radius.circular(15.0),
150 | bottomRight: Radius.circular(15.0),
151 | ),
152 | child: Container(
153 | height: 92.0,
154 | width: 104.0,
155 | color: greenLight,
156 | child: InkWell(
157 | onTap: () {
158 | Navigator.push(context,
159 | MaterialPageRoute(builder: (context) => Updates()));
160 | },
161 | child: Column(
162 | mainAxisAlignment: MainAxisAlignment.center,
163 | children: [
164 | Icon(
165 | Icons.update,
166 | color: green,
167 | ),
168 | SizedBox(
169 | height: 4.0,
170 | ),
171 | Text(
172 | 'Update',
173 | style: TextStyle(
174 | color: green, fontWeight: FontWeight.w500),
175 | )
176 | ],
177 | ),
178 | ),
179 | ),
180 | ),
181 | ClipRRect(
182 | borderRadius: BorderRadius.only(
183 | topLeft: Radius.circular(15.0),
184 | topRight: Radius.circular(15.0),
185 | bottomRight: Radius.circular(15.0),
186 | ),
187 | child: Container(
188 | height: 92.0,
189 | width: 104.0,
190 | color: greenLight,
191 | child: InkWell(
192 | onTap: () {
193 | Navigator.push(
194 | context,
195 | MaterialPageRoute(
196 | builder: (context) => InAppWebView(
197 | initialUrl: 'http://result.bpsplayschool.com/find-syllabus.php',
198 | initialOptions: {
199 | "javaScriptEnabled":true,
200 | "transparentBackground":true,
201 | "useWideViewPort":true,
202 | "displayZoomControls":true,
203 |
204 | },
205 | )));
206 | },
207 | child: Column(
208 | mainAxisAlignment: MainAxisAlignment.center,
209 | children: [
210 | Icon(
211 | Icons.library_books,
212 | color: green,
213 | ),
214 | SizedBox(
215 | height: 4.0,
216 | ),
217 | Text(
218 | 'Syllabus',
219 | style: TextStyle(
220 | color: green, fontWeight: FontWeight.w500),
221 | )
222 | ],
223 | ),
224 | ),
225 | ),
226 | ),
227 | ClipRRect(
228 | borderRadius: BorderRadius.only(
229 | topLeft: Radius.circular(15.0),
230 | topRight: Radius.circular(15.0),
231 | bottomRight: Radius.circular(15.0),
232 | ),
233 | child: Container(
234 | height: 92.0,
235 | width: 104.0,
236 | color: redLight,
237 | child: InkWell(
238 | onTap: () {
239 | Navigator.push(
240 | context,
241 | MaterialPageRoute(
242 | builder: (context) => InAppWebView(
243 | initialUrl: 'http://result.bpsplayschool.com/find-routine.php',
244 | initialOptions: {
245 | "javaScriptEnabled":true,
246 | "transparentBackground":true,
247 | "useWideViewPort":true,
248 | "displayZoomControls":true,
249 |
250 | },
251 | )));
252 | },
253 | child: Column(
254 | mainAxisAlignment: MainAxisAlignment.center,
255 | children: [
256 | Icon(
257 | Icons.book,
258 | color: red,
259 | ),
260 | SizedBox(
261 | height: 4.0,
262 | ),
263 | Text(
264 | 'Routine',
265 | style: TextStyle(
266 | color: red, fontWeight: FontWeight.w500),
267 | )
268 | ],
269 | ),
270 | ),
271 | ),
272 | ),
273 | ClipRRect(
274 | borderRadius: BorderRadius.only(
275 | topLeft: Radius.circular(15.0),
276 | topRight: Radius.circular(15.0),
277 | bottomRight: Radius.circular(15.0),
278 | ),
279 | child: Container(
280 | height: 92.0,
281 | width: 104.0,
282 | color: greenLight,
283 | child: InkWell(
284 | onTap: () {
285 | Navigator.push(context,
286 | MaterialPageRoute(builder: (context) => Home()));
287 | },
288 | child: Column(
289 | mainAxisAlignment: MainAxisAlignment.center,
290 | children: [
291 | Icon(
292 | Icons.person,
293 | color: green,
294 | ),
295 | SizedBox(
296 | height: 4.0,
297 | ),
298 | Text(
299 | 'Bus Track',
300 | style: TextStyle(
301 | color: green, fontWeight: FontWeight.w500),
302 | )
303 | ],
304 | ),
305 | ),
306 | ),
307 | ),
308 | // ClipRRect(
309 | // borderRadius: BorderRadius.only(
310 | // topLeft: Radius.circular(15.0),
311 | // topRight: Radius.circular(15.0),
312 | // bottomRight: Radius.circular(15.0),
313 | // ),
314 | // child: Container(
315 | // height: 92.0,
316 | // width: 104.0,
317 | // color: blueLight,
318 | // child: InkWell(
319 | // onTap: () {
320 | // Scaffold.of(context).showSnackBar(SnackBar(
321 | // content: Text('Not Available'),
322 | // ));
323 | // },
324 | // child: Column(
325 | // mainAxisAlignment: MainAxisAlignment.center,
326 | // children: [
327 | // Icon(
328 | // Icons.check_circle,
329 | // color: blue,
330 | // ),
331 | // SizedBox(
332 | // height: 4.0,
333 | // ),
334 | // Text(
335 | // 'Attendance',
336 | // style: TextStyle(
337 | // color: blue, fontWeight: FontWeight.w500),
338 | // )
339 | // ],
340 | // ),
341 | // ),
342 | // ),
343 | // ),
344 | ],
345 | ),
346 | ),
347 | ],
348 | ));
349 | }
350 | }
351 |
--------------------------------------------------------------------------------