Giter Club home page Giter Club logo

skopos-security's Introduction

Skopos Security

A senior capstone project whose goal was to produce vision software for a raspberry pi and webcam that could detect motion and recognize people. Not everything we set out to do was accomplished, as can be seen in this repositoris issues, but what was is summarized below. The semester long project is now over, and any sensitive data contained within such as usernames, passwords, and captcha keys are no longer valid. A report can be found in this repository going into further detail on the system.

Vision System

Uses Python, OpenCV, Paramiko, and a pre-trained neural network to implement a motion detection/human recognition vision system for detecting when motion is caused by a human. If this condition is met then an alert is sent to the user's email address, and an image of when the motion occurred is uploaded to their account on the website. A video clip then records until motion has ended for at least five seconds, and is subsequently uploaded to their website account.

Website

Was made for accessing the vision system's output and linking cameras to an account. It was programmed using HTML, PHP, CSS, and Python. The website and MySQL database were hosted using the Apache and MariaDB packages on Manjaro Linux. It consisted of an informational homepage, a registration page using Google's No CAPTCHA reCAPTCHA , a login page using php sessions, and various user related pages. The user home page contained their camera's uploaded images and clips. The user could download or delete these images and clips using this page. Only the front-end was implemented for the user schedule page where the user was supposed to schedule their camera's activation times. The user settings page allowed for the password to be reset, and their email and phone number information to be updated. Finally we had a mail script that was used to send alerts with a skopos gmail account and Google's smtp.

skopos-security's People

Contributors

zacharyedwardsdowns avatar mialynward avatar toddrob0 avatar spear29 avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

skopos-security's Issues

Create UI for the user pages three sections.

Our user page has three sections which you can find on our slides/report for project 3. We need to implement this UI using HTML and CSS so a user can travel between their home, schedules, and settings. This issue doesn't need to include a complete finalized version of each page, but at least a prototype of each with links to traverse between them.

Implement exit codes.

When things go wrong on different pages of the website an error code and message needs to be displayed. The exits code table of the database is for this, all areas where something goes wrong needs an appropriate error code attached for displaying to the user. This will also involve graphically displaying these errors on the correct page.

Implement high alert mode.

Implement the process that occurs if a recording reaches 15 minutes in length. This is detailed in past documents we have made for the project. The basic idea is queuing the clip for deletion once it has uploaded and sending extra alerts to the user.

Implement states. (Do at any time.)

This will be implementing the neutral, caution, and alert states of the camera. The previous functions already basically do everything, these states are simply to organize and streamline the cameras processes. This can be implemented early on or later.

Alert System

Involves implementing an alert system that will notify the user at their email and or sms when a ping from the camera system is received. For this issue actually receiving the ping from the camera system is less important. What's most important to implement is sending an email and text message to a given user.

Create UI for the homepage.

We need a UI for our homepage that talks about the project and our goals. As well as a top bar with links to either login or register. This should be an easy page to implement and is mainly a problem of aesthetic, trying to make a nice looking home page.

Registration page wrong form sizes.

On our registration page I've noticed on some screens it is the wrong size. This can be fixed by changing the css units from px to a more suitable unit. I would appreciate if someone took care of this so I may continue work on other issues.

Grab files from the FTP server. / Implement user home page.

Once the FTP server is set up implement a system for the website to grab files from it. This should also include downloading and deleting files from the server and implementing these videos on a user's home page. Thus this issue will include finalizing the look of a user's user page home page and allowing for the downloading and deletion of videos from it.
(User homepage UI made it's own issue.)

Implement an isHuman function.

Involves creating a function to detect if a human is on screen using the already implemented object recognition. Will return a true or false value.

Encrypt user information before storing in the database.

This involves encrypting all information before it is entered in the database using the PassLib library in Python. This can be done by having a python script that is called by the PHP script and it's result sent to the PHP script. This will involve adding this feature to every place our database is used.

Implement yesBox and goneBox functions.

We received good feedback to add a feature to tell when a package is removed from the screen since we are already implementing object recognition. This can be done with a function to tell if a box is on screen, and another to tell when that function has gone from a yes state to a no state.

Implement schedules.

On the user page schedule tab a user should be able to add and remove schedules that are stored in our database. This just involves adding the schedule information to our database and displaying visual feedback for the user to view and manipulate their schedules. It would be nice if there was a way to sort these schedules visually as well.

Implement alert and picture sending.

Using the previously build functions implement a feature that will send an alert and picture to a user page when a human is detected on screen when motion is happening.

Settings page implementation.

Create the functionality for password resetting, information updating (phone#/email), configuring where they receive notifications, camera linkage to an account, and account deletion. This will also involve graphically implementing these for interaction of a user's settings page as well.

Use JavaScript to improve the registration page.

It would be nice if when a failure happens on the registration page that the page doesn't fully reload and get rid off all entered data on the page. Using JS we can keep the previous form data and possibly even do a database check without hitting the submit button. Will require looking into how to check a database in JavaScript. This issue is of lower priority and is mainly just a nice enhancement.

Implement object recognition.

This involves using openCV to create a function to recognize at least the following objects:
Trees,
Cars,
Pets,
Boxes,
People.

This function should return an answer of what objects it sees on screen.

Link sessionIDs to the unique user pages.

This will involve using sessions and the user page so the two issues pertaining to those should be implemented first. Covered by another issue making this one not required.

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.