Skip to content

Ease your class workflow by automating classroom access based on the lecturer's time without the need for staff/inspectors to open them for you. | An Embedded Systems and IoT Whole Semester Project.

License

Notifications You must be signed in to change notification settings

CodexLink/SmartClassroomSystem

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

β›© πŸ— Smart Classroom ⌨ πŸ”₯

An Embedded Systems and IoT 2nd Semester Project | Ease your class workflow by automating classroom access without the need of staff to open them for you. (Unless, you want to open parts of the room that is not designed to be accessed to you...)

Coveralls.IO / Coverage Worker Coverage Status Embedded Sketch Worker

CodeFactor Grade Codacy Branch Grade C++ Code Formatter Python Code Formatter

Dependabot Dependency Status GitHub License

Welcome

Hello! This is a repository dedicated to show the concept of a bare minimum IoT to server interaction and implementation. The concept consists of the system itself (excluding only the physical side of the project) which this concludes the context as the Smart Classroom System. It has the capability to reduce time consumption upon entering rooms that are authorized within the scope of a particular time.

The Problem

Most of the day, one of the problems that the teacher and students always encountered when the class starts is the classroom locked. Sometimes, when your class is at 7:30 AM, it's safe to assume that your classroom is not yet opened. The fact that, any staff who is under those rooms are either late or literally just missing, for instance (breaktime, went out to go somewhere, etc.). Since, some of them never really learn. We have to do something about it. As those issues occur within the technology building. It's best to suit all classrooms with smart padlocks and other such. But the thing is, it is quite simple. So we have to come a more complex idea from the smart padlocks.

The Solution

The solution was to create a Smart Classroom. The context was not all about the locks being smart padlocks. But rather, we should be able to control the whole classroom itself! From locks to electricity to environmental states. This kind of solution looks typical when looked from the outside. But if you look in the system itself, it is quite complex to do so, as it involves time and subject included and user fingerprint assignments.

How does it work

The following consists of various sections in regard on how this system works.

The Context

So basically, we want something to automate, right? The group managed to think of something that would help the techno core building of their school to be more technology-dependent. That is by, making all instructional rooms to be accessible without any on sight staff but only the authentication within your hands.

The Wide Range of How It Works

So, how does it really works!?. In this system, we have a server and a client. The server can be Raspberry Pi 4B or any Server Computer and the Client is the NodeMCU. The server contains an accessible website to be used by staff and professors. The client which those are nodes, act as a receiver and status transmitter. Everytime there is a change in the classroom, the NodeMCU prepares the states in Dictionary Form everytime the server wants to query on the Nodes. Then the server process that state and assign those values in the database. Other than that, the server has the capability to send requests to the Nodes to change particular attributes of it. Such as the subject code to be assigned in front of the screen, explicitly change electricity and lock state without any authentication (exclusive for administrators only!).

Table of Contents

This are the README Sections and Subsections. You can navigate through by clicking in one of those...

πŸ”₯ πŸ“ File Structure Deconstruction

This repository contains a lot of varieties. Meaning you really have to know the path you're going before navigating any further without realizing where the heck are you even going... Just read it in a bare-minimum way and you will be fine πŸ’―

. <Repo Root Folder>/
β”œβ”€β”€ .dependabot/ # Contains Dependabot Dependency Configuration...
β”‚   └── config.yml
β”‚
β”œβ”€β”€ .github/ # Contains Workflow File...
β”‚   └── workflow/
β”‚       └── SketchWorker.yml # It is a sketch validator and worker. It outputs whether those sketches inside of the folder `NodeSketch_SC` will work or uploadable in MCU's memory.
β”‚
β”œβ”€β”€ .vscode/ # VSCode configuration.
β”‚   └── *.json
β”‚
β”œβ”€β”€ Externals/
β”‚   β”œβ”€β”€ AdLibs/ # Contains set of text refining multiple non-understandable context by talking to self on how to do it in text form. | Specifically made for CodexLink
β”‚   β”‚   └── *.md
β”‚   β”‚
β”‚   β”œβ”€β”€ Commands/ # Contains only few preset commands that can be used to certain extreme conditions.
β”‚   β”‚   └── *.txt
β”‚   β”‚
β”‚   β”œβ”€β”€ Project Plan/ # It consists of important notes to look up from what should be context of the project.
β”‚   β”‚   └── * .md
β”‚   β”‚
β”‚   └── Sketch/
β”‚       └── NodeSketch_SC/ # Specifically for NodeMCU Sketches.
β”‚           β”œβ”€β”€ *.cpp
β”‚           β”œβ”€β”€ *.h
β”‚           └── *.ino
β”‚
β”œβ”€β”€ SmartClassroom/ # Django Project Folder
β”‚   β”œβ”€β”€ DataSetBackups/
β”‚   β”‚   └── *.json
β”‚   β”‚
β”‚   β”œβ”€β”€ NodeHandler/ # Django Micro App. This acknowledges any IoT MCUs by their own POST requests. This app could make changes to the databases.
β”‚   β”‚   β”œβ”€β”€ migrations/
β”‚   β”‚   β”‚   β”œβ”€β”€ __pycache__/
β”‚   β”‚   β”‚   β”‚   └── *.pyc
β”‚   β”‚   β”‚   β”‚
β”‚   β”‚   β”‚   └── __init__.py
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ __init__.py
β”‚   β”‚   β”œβ”€β”€ apps.py
β”‚   β”‚   β”œβ”€β”€ urls.py
β”‚   β”‚   └── views.py
β”‚   β”‚
β”‚   β”œβ”€β”€ SCControlSystem/ # Django Main Web App. This renders EVERYTHING that any user could access to...
β”‚   β”‚   β”œβ”€β”€ externs/
β”‚   β”‚   β”‚   β”œβ”€β”€ __pycache__/
β”‚   β”‚   β”‚   β”‚   └── *.pyc
β”‚   β”‚   β”‚   β”‚
β”‚   β”‚   β”‚   └── __init__.py
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ management/
β”‚   β”‚   β”‚   β”œβ”€β”€ __pycache__/
β”‚   β”‚   β”‚   β”‚   └── *.pyc
β”‚   β”‚   β”‚   β”‚
β”‚   β”‚   β”‚   └── commands/
β”‚   β”‚   β”‚       β”œβ”€β”€ backup_datasets.py
β”‚   β”‚   β”‚       β”œβ”€β”€ create_definitive_groups.py
β”‚   β”‚   β”‚       └── get_all_permissions.py
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ migrations/ # Literally migrations...
β”‚   β”‚   β”‚   β”œβ”€β”€ __pycache__/
β”‚   β”‚   β”‚   β”‚   └── *.pyc
β”‚   β”‚   β”‚   β”‚
β”‚   β”‚   β”‚   └── __init__.py
β”‚   β”‚   β”‚   └── ***(migrations_auto_...).py
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ scripts/
β”‚   β”‚   β”‚   β”œβ”€β”€ __pycache__/
β”‚   β”‚   β”‚   β”‚   └── *.pyc
β”‚   β”‚   β”‚   β”‚
β”‚   β”‚   β”‚   └── SC_DSH.py # A script used by SC_ScriptInst.py. It was instantiated (spawns another window) to acknowledge IoT device communicating with the server. Requires Django-Extension to use this script.
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ __init__.py
β”‚   β”‚   β”œβ”€β”€ admin.py
β”‚   β”‚   β”œβ”€β”€ apps.py
β”‚   β”‚   β”œβ”€β”€ forms.py
β”‚   β”‚   β”œβ”€β”€ models.py
β”‚   β”‚   β”œβ”€β”€ urls.py
β”‚   β”‚   └── views.py
β”‚   β”‚
β”‚   β”œβ”€β”€ SmartClassroom/ # Django Base Project Folder. Auto-generated by Django-admin.
β”‚   β”‚   β”œβ”€β”€ __pycache__/
β”‚   β”‚   β”‚   └── *.pyc
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ __init__.py
β”‚   β”‚   β”œβ”€β”€ asgi.py
β”‚   β”‚   β”œβ”€β”€ settings.py
β”‚   β”‚   └── urls.py
β”‚   β”‚
β”‚   β”œβ”€β”€ static_src/ # Known as static source files. Those are used for rendering of styles and used for extra functionalities of the web-app itself.
β”‚   β”‚   └── css/
β”‚   β”‚   β”‚   └── *.css / *.css.map
β”‚   β”‚   β”‚
β”‚   β”‚   └── js/
β”‚   β”‚   β”‚   └── *.js / *.min.js / *.js.map
β”‚   β”‚   β”‚
β”‚   β”‚   └── rsrc/
β”‚   β”‚       └── *.jpg / *.png
β”‚   β”‚
β”‚   β”œβ”€β”€ template_CALLABLE/ # Known as Preset Components. Those are callables and referrable to Class-Basediews.
β”‚   β”‚   β”œβ”€β”€ elem_inst_view.html
β”‚   β”‚   └── *noContextReponseOnly.html
β”‚   β”‚
β”‚   β”œβ”€β”€ template_REQUIRE/ # Known as Modular Components. Those are Required Templates To Use by the template_CALLABLE HTML Candidates.
β”‚   β”‚   β”œβ”€β”€ footer.html
β”‚   β”‚   β”œβ”€β”€ header.html
β”‚   β”‚   β”œβ”€β”€ modals.html
β”‚   β”‚   β”œβ”€β”€ nav.html
β”‚   β”‚   └── sidebar.html
β”‚   β”‚
β”‚   β”œβ”€β”€ template_REUSE/ # Known as Reusable Components. Those templates have it's own content and cannot be paired with another reusable component.
β”‚   β”‚   β”œβ”€β”€ 404.html
β”‚   β”‚   β”œβ”€β”€ classroom_control.html
β”‚   β”‚   β”œβ”€β”€ dashboard.html
β”‚   β”‚   β”œβ”€β”€ instance_listviewer.html
β”‚   β”‚   └── login.html
β”‚   β”‚
β”‚   β”œβ”€β”€ usersrc/ # Contents that are user-generated. They will be used in rendering if provided by the user.
β”‚   β”‚   └── <Confidential...>
β”‚   β”‚
β”‚   └── manage.py
β”‚
β”œβ”€β”€ .gitignore
β”œβ”€β”€ LICENSE
β”œβ”€β”€ README.md
β”œβ”€β”€ requirements.txt
└── SC_ScriptInst.py

Go Back To Top Section | Go Back to TOC

Introduction to Requirements

In this section, we're going to talk in the software-side and hardware-side. This should be enough if you're willing to duplicate this project both physically and virtually working. Keep in mind that this will be a bit hectic. So take time if you're willing to do something about this project.

Go Back to TOC

Hardware-Side Introduction

In this section, we will be slightly talking about the required microcontroller,and the required components... Just so you know, this project is so expensive asf in the hardware stuff so that should be a spoiler alert for you. It took our allowance by 75% by the time we're buying the components. Anyway, let's get started.

Go Back to TOC

Required Microcontroller

The most common typical microcontroller that the project uses is the NodeMCU v2 Lua ESP8266EX Version. We generally recommend using ESP32 which is just a slight realization after finishing this project. I myself, might guess this the PINS used in NodeMCU v2 Lua ESP8266EX Version is the same as ESP32. Though, I can't investigate further since I don't have ESP32 at the moment.

Go Back to TOC

"Why should I use ESP32 instead of ESP8266 / ESP8266EX?"

The reason why is because of the Pin's Availability. I believe ESP32 pins are more accessible and less restrict when booting up than ESP8266. Sure, you could put a data pins on some parts of NodeMCU v2 ESP8266. But at some point in time, that would lead to boot failure. Please refer to some guides such as this one. This site will really help you out on why investing to ESP32 is better than NodeMCU v2 Lua. Though if you think going for NodeMCU v3. The issue is literally quite the same. So be wise on what MCU to choose.

As long as the MCU has the capability to handle GT5X Instructions (For Fingerprint specifically...) and able to handle tasks by responding to requests both in POST and GET forms. And has the ability to handle the extensive stacked task as we have a Millis Management for Room Locks. Then you're good to go. Keep in mind the RAM is one of the factors to consider. As far as I developed it, I might be able to consume a lot of RAM for the tests.

Go Back to TOC

Required Components

The components that we used, were essentially in my inventory already. So the cost of the project gets higher than I thought. That's because as a hobbyist, I find one of those are bare-minimum to withstand this project and able to make something out of it. So here's the list along with their intentions.

  1. GT-521F32 Fingerprint Sensor
  2. LCD 20x4 with (I^2)C Backpack
  3. Two-Sided DIP Switch x2
  4. PIR Motion Sensor HC-SR501
  5. DC-DC Buck Converter 3A MP1584EN
  6. DHT 11/22 Humidity and Temperature Module
  7. Dupont-Type Jumper Wires (10 to 30 cm)
  8. 12 V Powered Solenoid Lock (Magnetic)
  9. 3-Channel Relay Module (with Octocoupler)
  10. 12V Adapter to Jack Output (Recommended: 12V, Minimum: 9V)
  11. (Optional) Bulb [1]
  12. (Optional) Extension Cord [2]
  13. (Optional) Raspberry Pi 4B [3]
  14. (Optional) Router or Repeater [4]
  15. (Optional) Power Jack [5]
  • What's with the Adapter?

    • The reason why I gave parameters is because the project requires a voltage with sufficient reliability and better current. If you intent to make the project work by directly connecting the PWR to NodeMCU and let all components connected to it to VCC. You will feel that your NodeMCU's diode will collapse. This is where the buck converter comes in. You have to feed 9-12V to buck converter. Set output to 5.4 to 5.7V respectively. And put the output in rail to be used by components + to be used by MCU via VIN pin.

    • Also, I included the minimum as a possible best minimum setup. As per the requirements says, we have a 12V powered solenoid lock. That is where 12 V has to do something on it. If for in case, you have a solenoid lock or any kind of locks rated to 9V respectively. Then it is best to go for 9V Adapter. Just do the same setup as usual by setting buck converter output to given said respectively voltage and you're ready to go.

  • Some components were indicated as optional. Why?

    • We have several reasons. For [1] and [2], we have to indicate it as optional since we didn't provide schematics for our project. This was intended for the test of relay functionalities. For [3] and [4], this was our usual setup. But due to Pandemic, we're unable to set it up. So instead of using it, we just use our home router and laptop to host the server. Though in this project, we already set compatibility for Raspberry Pi 4B Project Launch. Kinda a waste of time but support for it was a success. And lastly but not the least, the [5] power jack. This is indeed unusual, but if you're planning to use this, even as a module, it would be great! The setup of this project has a required parameter especially in the Voltage. The voltage of the project should be set to 5.4V to 5.7V. Going further down or going further up will result in unexpected behaviors!

I don't provide links to these components. That's because the supplier is not supporting different countries. So let's say we bought our parts in a local shop. Which technically true. We will only provide links that supports delivery to other countries.

Go Back To Top Section | Go Back to TOC

Software-Side Introduction

In this section, I'll be talking from scratch. Since this will be long enough, it's best to check the Demo and Resources Section and watch Youtube Video Installation. To get the knowledge on how to install the components of the project.

DISCLAIMER: The setup and deployment may slightly be different from what is being demonstrated in the youtube video! But the output will be the same.

Go Back to TOC

Installation of Pre-requisites

In order to move further to the deployment section, I don't want to assume if you have anything installed. So it's best to install the packages / modules inside of the requirements.txt

  1. To install, you have to change the directory to the repository root level.

  2. Type pip install -r requirements.txt and press enter.

    With that, you should have the following packages / modules installed in your pip:
    
    * Django (Version 3.0.5 and Above)
    * Django_extensions (Version 2.2.9 and Above)
    * Python-coveralls (Version 2.9.3 and Above)
    * Coveralls (Version 2.0.0 and Above)
    * Django-coverage-plugin (Version 1.8.0 and Above)
    * Coverage (Version 5.1 and Above)
    
    Since you have installed all of them its time to assume that you have a MariaDB Server that is online.
    
  3. You have to create a database named sc_db. And leave it blank.

    There will be a next step on how to put content in the `sc_db` database, so don't worry.
    
  4. Next, we have to put models and migrations content in the sc_db database. With that, type python manage.py makemigrations.

  5. Once done, type python manage.py migrate to apply all migrations that the Django did.

  6. After that, setup up your superuser! Type python manage.py createsuperuser to fill the bare-minimum information needed.

  7. Then, run python manage.py runserver and navigate to localhost:8000 to see if things are working.

Congratulations! You did it. But that doesn't stop there. Because you have one thing left to do.

.... (Required) Upload NodeMCU Sketch.

Go Back To Top Section | Go Back to TOC

Upload the NodeMCU Sketch

This is required since this will be your communicator in the server. To get started, follow the instructions below.

  1. By File Manager / File Explorer, navigate to Externals\Sketch\NodeSketch_SC.

  2. Open NodeSketch_SC.ino

  3. At Line 38 Do EDIT the WiFi Target and it's credentials. The following has its own labels or required positional arguments / parameters, check SmartClassroom.cpp or SmartClassroom.h.

    • Ensure that you're connecting to where the server or the Django Server lives!
  4. Connect all components to their corresponding PIN definitions declared at SmartClassroom.h.

  5. Assuming you have NodeMCU device candidate in the board selection. (You can check by Tools > Board: XXXXXX). If NodeMCU did not show up. Then you might want to install the ESP8266 package for Arduino IDE.

  6. If for instance you, already have one. Then set the NodeMCU board as the target board. Set Upload Sketch From Ranges (115200 * 256000). The higher the better, the higher it is, the capacitor has to exist from EN to GND. (10uF Electrolytic Cap).

  7. Press Upload.

And... Done! Wait further and let the screen of the device to show the information such as the temperature and humidity, classroom subject and lock states.

Go Back To Top Section | Go Back to TOC

Deployment

In this section, we're going to talk about on how to deploy this project. The way you open the project is not intended or the usual way for this one. The project contains a script that could launch multiple instances of Command Prompts / Terminals.

Just to make things clear, there are at least three command prompts / terminal instances and those are:

  1. Smart Classroom | Script Instantiator (Base System | The One You Should Open)
  2. Django Server Instance (Literally Runs inside SCControlSystem)
  3. Smart Classroom | Data Stream Handler (Inside SCControlSystem, at Scripts Directory named SC_DSH.py)

Go Back to TOC

Getting Started

  1. Open your MySQL Server / MariaDB Server.
  2. At the root of the repository folder, just launch SC_ScriptInst.py.
  3. Let it do the work.

That's it!

If you're attempting things and it didn't go well. Please check the videos from the Demo and Resources Section. Which is located just below!

Go Back to TOC

Demo and Resources

This section should be enough to know on what you're dealing in this project.

Go Back to TOC

Advanced Context: Protocol

In this section, it shows a list of protocols to better understand how the system works.

Shutdown Timer Based on Motion Sensor Protocol

For every subject, we have a time limit. In our system, everytime it is unlocked for a particular time. Every 5 minutes, the motion sensor has to detect a person for every 30 seconds. Now 10 scans for 30 minutes is equivalent for 5 minutes. If the scanner is in 50% state, it will continue for another 5 minutes. If the scanner is in 50% state less, it will shutdown the classroom itself.

Go Back to TOC

Classroom Locked State Change Protocol

For every node, for it be controllable, it has receive a subject code on it. Those are automatically given by the Data Stream Handler on the system. So it may need privilege for explicit assignment of subjects. Anyway, any other such explicit actions without any subject assignment to the classroom. Will result to its functionality as defaulted to be locked, electricity turned off. So for maintenance for instance, there should be a custom made admin subject along with time.

If for instance, the subject is the last subject, any other circumstance may be stopped in the middle of a session. So the time has to be considered when using this system.

Go Back to TOC

Restrictive Accessibility Protocol

When the accessibilities handed out to the user. Some users might even tampered it without any hindrance to it. For instance if a user wants to access rooms not assigned to them. So for us to keep things safe, we have to disable links from other rooms but only displays their states to the rooms. Some rooms will only be enabled to you only if your subject linked to you is on the current time scope of the server time, it will be accessible and controllable within the outside range. Any user who attempts to access rooms, will technically make you get in but you'll be recorded for the actions that is not quite acceptable. Meaning your name is in the list of logs who misused or accessed a particular room not currently assigned / focused to you.

Go Back to TOC

πŸ’ ❔ Frequently Asked Questions

  • I feel that some parts of this project is missing... Can you tell me what is it?

    • Sure bro... There are only a few things that are NOT CONSIDERED to give away. And those are the following:
      1. PCB Design
      2. Miniature Design Layout
  • Your code is not that very much clean / My eyes hurt! / Why would you code something much inlined and quite... stupid???

    • All codes that were done initially was not intended to be dirty as possible. They were like that due to the fact that we have deadlines to meet. That's because I did most of the work here (In Software-Side) for 3 months straight. So I apologize for such a messy code. And yeah, the hardest part to accept when making this one is that I was still learning the necessity parts of Django to our projects.
  • Can I use this whenever I want?

    • Yeah, sure. But keep note that the repository has a GPL-3.0 license. You have to read it and understand why I have to choose this one.
  • Do I really have to meet the required components indicated here?

    • For compatibility, of course. Since I didn't provide for the schematics, you could use different components or MCUs to your liking.
  • How did you come with this project?

    • Long story short, I wanted to achieve ideal time for what allocated time was for the discussions and for the waiting time to open the room. In our school, you need a staff / administrator to open the room door for you. And I as for what I know, I don't like how we wasting our time for nothing. That's because they are late as usual. One thing to mention is that we have one course-dedicated room from the technological building and the one who is assigned to that building is taking a while to open our room because he was always LATE, and that is always the scenario during Monday, Wednesday, and Friday. It makes me feel bad, the fact that building is highly focused on technology! So, to make at least a solution, we were able to think of this project, without actually us thinking on how hard it is gonna be. And with that, a few weeks later, this project was born.
  • Why did you open-sourced this!? And aren't you afraid it as the Lead Developer?

    • I don't want to put any of my works in the bookshelf from which other people doesn't see it. I want things to be accessible because that makes me want to value the hard work and sleepless nights that I throw off especially on this project. And yes, I'm not afraid of getting stolen. I always assume we could do things legal and proper. And I'm already a victim of it and know how it feels to get stolen by someone else.
  • What would you do if someone got stonks from this project?

    • I might close this one down. But I believe this project is very hard to replicate physically. I just do hope I could get something on it, or even just credits were just fine. Keep in mind that the project is just a bare-minimum setup that could be possibly done in-home or from small-scale buildings with multiple rooms. I know this type of setup is possibly expensive, but we're just showing here the concept of what IoT can do nowadays.
  • Can I submit issues and submit a proposal for alternative methods?

    • That's nice of you! Yes you can, just make things a bit formal. Even though I don't have a template for making it descent and formal as possible. I would just give you freedom on how would you laid out the proposals or issues. Just label things out accordingly in the labels that I made.
  • This was such a medium-scale project!? How did you survive working on this one alone???

    • I don't even know how I were able to survive this while learning throughout the semester. But hey, at least I wasn't suicidal or didn't got grave inside of depression. But to be honest, I did survive by just literally working on it non-stop. You really have to sacrifice having fun and being go-happy with others. You really have to focus on it. Which in the end, I was now quite emotionless, not being able to be happy at things that I want to be happy. - DISCLAIMER - I'm not scaring you or other people at trying to sacrifice for the better, this was literally just happened due to circumstances. Maybe there's a better way to code productively and not by just coding all times and ending up at being emotionless and blame self for such stupid reasons...
  • I just checked the documentation and your recommendation is SO LONG! What the hell? So that means the project has a lot of flaws???

    • I would literally agree that it has quite a few flaws. NOT a lot. Because the majority of the functionalities of the system pretty works well in my own perspective. I could be wrong, because the fact that, we realized that during the pandemic online sessions. And we only fixed a few things. But that fixes and adjustments didn't get committed in the repository. Which is quite disappointing. Anyway, IIRC the only problems or recommendations that I had is all about the implementation and how should I be using other components instead of having of what I currently have in the inventory.
  • Can I ask question/s?

    • Sure thing! Just be polite and I'll answer your question through my email indicated in my Github Profile!

Go Back To Top Section | Go Back to TOC

πŸ† ✍ Authors

Here are the list of authors who is taking part of the project.

  • Embedded Systems Team

    • Janrey Licas - Initial Work / Project Lead / Overall Software Design Worker / FrontEnd Design and Backend Programming - CodexLink
    • Janos Angelo Garcia Jantoc - Hardware PCB Designer and Post Project Worker - BigBossCodes
    • Johnell Casey Murillo Panotes - The Participant and Initial Bare Minimum Documentation Worker - No Account
  • Internet of Thing Team

    • Janrey Licas - Initial Work / Project Lead / Overall Software Design Worker / FrontEnd Design and Backend Programming - CodexLink
    • Janos Angelo Garcia Jantoc - Hardware PCB Designer and Post Project Worker - BigBossCodes
    • Ronald Langaoan Jr. - Hardware Designer and Miniature BuilderAliasBangis
    • Joshua Santos - Initial Build Supporter and Joint Project Leader from Logic Circuits and Design - No Account

Go Back to TOC

πŸ“œ Various Credits

In this section, the maintainer will credits to various types of entities.

πŸ™‡ Personal Credits

As a maintainer, I would like to give gratitude to several people who take part on this project. Those people helped / contributed that is considered gold for us.

  • Charles Ian Mascarenas - Schematic Inspector and for Insights Given Regarding Buck Converter and Voltage Regulator Due To Current Exactly Caught by NodeMCU's Diode for Relays and Other Such Components - ci-mascarenas
  • Engr. Cris Paulo Hate - Embedded System Instructor, Insights Given for Proper Components to Use for Locking Rooms such as Solenoid Lock and Insights were given for the future steps of the project. Such as the proper use of IoT components like ESP8266.* - Account Not Recognized.
  • Engr. Jan Justin Razon - Internet-of-Things Instructor, Insights Given for what things should be considered and how should the system work. Also insights given on what locking mechanism should be used for the room. - Account Not Recognized.

Go Back to TOC

πŸ† Library Credits

Go Back To Top Section | Go Back to TOC

πŸ“‘ Documentation Credits

  1. R. Yesodharan, R. Prince, S. Karthick, V. HariKrishnan and D. Bennaiah, "IoT based Classroom Automation using Arduino," International Open Access Journal, vol. II, no. 2, pp. 306-307, 2018.
  2. T. Sali, C. Pardeshi, V. Malshette, A. Jadhav and V. Thombare, "Classroom Automation System," International Journal of Innovations in Engineering and Technology(IJIET), vol. VIII, no. 3, p. 27, 2017.
  3. Creately.com. 2020. Django Architecture Flowchart | Creately. [online] Available at: https://creately.com/diagram/iqjshero1/Django%20Architecture%20Flowchart [Accessed 23 March 2020].

Go Back to TOC

πŸ’― Solution Credits

Go Back to TOC

πŸ“š License

This project is licensed under the GNU v3 License - see the LICENSE file for details

End of File | Go Back to TOC

About

Ease your class workflow by automating classroom access based on the lecturer's time without the need for staff/inspectors to open them for you. | An Embedded Systems and IoT Whole Semester Project.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published