Skip to content

pairOfPants/RangSecurity

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 

Repository files navigation

gbb

Rang - Security for Everyone


Note: This project is unfinished. It was originally created by four high school students at a local hackathon, and further development is now being implemented.

Also Note that the website linked above is created using Wix, and a custom website is still being coded by serenexy

Estimated Completion Date: TBD

Project Description

Rang aims to take something that is overpriced and exploited, and make it accessible to everyone. Here at Rang, our mission is to help make information available and accessible to everyone, while doing so at an affordable price. We draw our inspirations from Ring Doorbells, and with our app, you can have equivalent power for a fraction of the cost.

Rang Cameras are an affordable security feature that have built in motion detection and human verification systems that can access and capture your computer's camera(s) when any motion is detected. When our app is active, it will be able to send you a text message or email informing you of the security breach at your computer and let you see it in real time. Additional features include the ability to start and stop the feed, capture a photo, and toggle our security mode. Every Photo you take can be accessed locally and will *optionally* be accessable from the cloud.

Challenges Faced

  • Utilizing Amazon Web Services API for cloud storage
  • Connecting Multiple Cameras through Bluetooth
  • Encrypting Information In Cloud

Table of Contents

Image Gallery

Downloads and Installation

Downlad

If you would like to code on Rang, feel free to use the .zip above. For downloadable releases, see the releases page Note: Many of the features in the most recent release do not work as intended. This project is unfinished and development is continuous, I just needed an executable build for a presentation I had

Install

The first thing to do, once the zip is download, is to import all the external libraries, I have done this through maven. Attatched is the pom file, feel free to copy it. I will also attatch everything here: Note: If downloading from the releases page all you need to do is run the file - None of these steps apply to you.

Maven

Maven, for those who don't know, is a tool which helps import external java libraries. You don't need to download anything onto your IDE, because this project already is a maven build. All you need to do is locate the pom folder and make sure the following code is under the dependencies folder.
 <dependencies>
    <!-- JUnit depencency for Maven Testing -->
    <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
       <version>4.11</version>
       <scope>test</scope>
    </dependency>

     <!-- Webcaam Capture API for Webcam Feed -->
     <dependency>
       <groupId>com.github.sarxos</groupId>
       <artifactId>webcam-capture</artifactId>
       <version>0.3.11</version>
     </dependency>

    <!-- SLF4J depencency for Webcam Capture -->
    <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-api</artifactId>
       <version>2.0.6</version>
    </dependency>
                                                           
    <!-- SLF4J depencency for Webcam Capture -->
    <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-simple</artifactId>
       <version>2.0.6</version>
    </dependency>
                                                          
    <!-- Xuggle API for Creating Videos -->
    <dependency>
       <groupId>xuggle</groupId>
       <artifactId>xuggle-xuggler</artifactId>
       <version>5.4</version>
    </dependency>
                                                        
    <!-- Twilio API for Sending Texts -->
    <dependency>
        <groupId>com.twilio.sdk</groupId>
        <artifactId>twilio</artifactId>
        <version>9.2.1</version>
        <scope>compile</scope>
    </dependency>
                                                         
    <!-- JavaMail API for Sending Emails -->
    <dependency>
      <groupId>javax.mail</groupId>
      <artifactId>javax.mail-api</artifactId>
      <version>1.6.2</version>
    </dependency>
 </dependencies>

Note, you will also need to add the following code to your repositories folder:

<repository>
    <id>xuggle repo</id>
    <url>https://files.liferay.com/mirrors/xuggle.googlecode.com/svn/trunk/repo/share/java/</url>
</repository>

How to Use

Once the application is downloaded and installed, just run the program and everything should be self-explanatory. You will need to create a directory to store photos and videos on, I reccomend an external hard drive but any directory will do. We also ask for your phone number and email which are used to send texts and emails accordingly when security mode is on and there is an alert, but know that Rang does not store this information and these contacts will be stored locally on text files inside the project directory.
Here is a brief overviw of each of the functions, as they stand in current development:
  1. Capture Photo: Takes a photo from your camera's webcam and stores it inside capture directory
  2. Start/Stop Video: Takes a video (bursts of photos) from the duration the start button is hit until the stop button is hit
  3. Security Mode: Off means that you will not recieve alerts, on means that every time motion is detected the program will record a 40 second video, save it, and email it out to you (assuming you elect to have emails)
  4. Settings: Still in development
  5. Multi-Camera Arrangement: Still in development
  6. Connecting Additional Cameras

    To Be Implemented

    Other Settings

    Other settings thus far include the ability to control the arrangement of your computer's webcams, if multiple are installed, the ability to choose push notifications, the ability to add and remove cameras from the system, and the ability to change the directory of where the videos are stored, or even store them in the cloud.
    Settings to be incoorporated include the ability to capture a screen recording during security mode in addition to camera recording, the option to record audio, and the ability to change the length and quality of the security mode videos, for file size and performance purposes.

    Contributors

    Below is a list of all contributors and their roles/responsiilities in this project
    1. pairOfPants - Head Developer, created the backend code for this project and systems tester
    2. simon-kowerski - Frontend Java Developer, created the GUI interface to run the backend code
    3. serenexy - Website Developer, made website in HTML, JavaScript, and CSS
    4. mantis - Assistant Java Backend Developer - Optimized code with Multithreading

    I highly reccomend visiting each individual's profile to view their other work, separate from this project.

    How to Contribute

    While our license prevents outside use for financial gain, feel free to contribute to this repository through pull requests. If you are looking for another way to contribute to this project, all donations to the paypal linked below are greatly appreciated, and they help speed up development astronomically.


    License

    This project is protected under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International Public License.
    In short, anyone can edit, download, and use our code as long as any modification is republished back to this repository and our code is not used for your own financial gain. To read the full license, click HERE