Giter VIP home page Giter VIP logo

fyp-smart-building-system's Introduction

❤️ FYP-Smart-Building-System ❤️

✨ IoT Based Smart Building System ✨



Table of Contents

Splash Screen 🚀 ❤️

This is animated Splash Screen for My Android App

  • bganim 💻
<translate android:duration="800" 
  android:toYDelta="30%p" 
    android:fromYDelta="0%"/>
  • clovernim 💻
<alpha android:duration="800" 
  android:toAlpha="0.0"
    android:fromAlpha="1.0"/>
  • frombottom 💻
<translate android:duration="800" 
  android:toYDelta="0%" 
      android:fromYDelta="10%p"/>
<alpha android:duration="600" 
    android:toAlpha="1.0" 
        android:fromAlpha="0.0"/>

Login Screen 🚀 ❤️

  • Email Format Checking Function 💻
Pattern EMAIL_ADDRESS_PATTERN = Pattern
    .compile("[a-zA-Z0-9+._%-+]{1,256}" + "@"
          + "[a-zA-Z0-9][a-zA-Z0-9-]{0,64}" + "(" + "."
              + "[a-zA-Z0-9][a-zA-Z0-9-]{0,25}" + ")+");
  • Use Android 💜 Volley 💜 Framework
    • Import Volley Library to build.gradle
            implementation 'com.mcxiaoke.volley:library:1.0.18'
  • Implement a Link with NodeJS API
    private String Login_GET_User_All_Data_API = 
        "http://10.0.2.2:3000/login_response_data";
  • Link Volley to handle Requests
    requestQueue = Volley.newRequestQueue(getApplicationContext());



Forget Password 🚀 ❤️

If you forget Password , You can Login Via

  • Google SignIn
  • Mobile Verification

Here Mobile Code Verification is Done with

LocalTxt API

Then You will move to next Activty for verification













          Code Verificaition Activity  💻
           If verification code matched 

                 Move to Home Page

                       You can resend code after One Mint 

                       You can Change Number




Home Screen 🚀 ❤️

Button will be Generated Dynamically According to User Access

final Button btn = new Button(this);

On Button Click Data will be Updated in SQLite 💻

 SQLite_DATABASE_OBJECT.update_device_on_off_status_detail_table(btn.getId(), 0);










Schedule Screen 🚀 ❤️

Here all Schedule Added will be Display and you can add more

  • One Scheddule per Device
  • Scheduled Device will not Display again in Drop Down

Array is defined to Store data about devices under Action

  ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>
        (this,android.R.layout.simple_spinner_item, list);







Storage Screen 🚀 ❤️

Here all data from database (MySQL) is fetched and Displayed

  • Temperature Data
  • Humidity Data
  • Use Android 💜 MPAndroidChart 💜 💻
    • Import MPAndroidChart Library to build.gradle
  implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'









Profile Screen 🚀 ❤️

Here your all data will be display

  • Your Name
  • Location
  • etc
  • Can View Help Manual 💜

Can Update

  • User Name

  • Phone Number

  • Password

  • Can Manage Devices

  • Can Manage Schedules

  • Use Android 💜 Glide 💜

    • Import Glide Library to build.gradle
  implementation 'com.github.bumptech.glide:glide:3.8.0'

Update Picture to profile page using Glide

    Glide.with(getApplicationContext()).load(kashif_pic)
                    .thumbnail(0.5f)
                     .crossFade()
                     .diskCacheStrategy(DiskCacheStrategy.ALL)
                     .into(imageView_for_profile_picture);
   

Implicit Intent in App ( Open messaging app Automatically and write about use)

Intent n = new Intent(Intent.ACTION_VIEW);
                n.setType("vnd.android-dir/mms-sms");
                n.putExtra("address", "+92308xxxxx");
                n.putExtra("sms_body","User:   "xyz +"\nLocation:   "+abc+"\n Issue:\n    ");
                startActivity(n);
             

Device Management 🚀 ❤️

Can be use to

Enable Devce Control

Disable Device

If a Device is Disabled , All Schedule on it will be distroy and no more schedule can be added
















Add AlertDialog Boxes

  AlertDialog.Builder builder = new AlertDialog.Builder(HomePageActivity.this);
                    builder.setTitle("Disable Device !");
                    builder.setMessage("\n If you Disable this device, Schedule on this  will be Delete !");
                    builder.setIcon(R.drawable.ic_sad);
     





Schedule Management 🚀 ❤️

Can be use to

Delete Schedule

After Deletion Device will be release

Delete on Back-end Side too

Send Notification when time reach and according Action on device



  NotificationManager notificationManager = 
     (NotificationManager) getSystemService(
           Context.NOTIFICATION_SERVICE);
           
  NotificationCompat.Builder notificationBuilder = 
   new NotificationCompat.Builder(
      this, NOTIFICATION_CHANNEL_ID);

Libraries Imported 🚀 ❤️ ❤️

    implementation 'com.github.bumptech.glide:glide:3.8.0'
    implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'
    implementation 'com.google.firebase:firebase-auth:16.2.1'
    implementation 'com.google.android.gms:play-services-auth:16.0.1'
    implementation 'pl.droidsonroids.gif:android-gif-drawable:1.+'
    implementation 'com.mcxiaoke.volley:library:1.0.18'
    implementation 'com.android.support:design:28.0.0'
    implementation 'com.shobhitpuri.custombuttons:google-signin:1.0.0'

Backend NodeJS APIs 🚀 ❤️ ❤️

Use Node JS on Backend with MySQL Database File Availble in Code Above 🚀 (Named: SBS APIs)🚀

Author 👤 ❤️

Muhammad Kashif ❤️

License 📝

Copyright © 2019-2020, Muhammad Kashif. Released under the MIT License.

Please ⭐️ this repository if this project helped you!
More Projects 💪 💪 💪

fyp-smart-building-system's People

Contributors

kashiftufail007 avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.