jacobpclouse / Online-Security-System

A Security System that streams video feeds from client to server, stores them and let's you browse them

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Online Security System - Jacob Clouse

Overview:

  • This client/server system should allow for a user to hook up multiple cameras and stream this data to a server that saves it for later
  • System developed and run on: Linux (Debian/Ubuntu Based)

Goals / Progression:

  • Created client and server files, setup .gitignore
  • Setup Virtual Environment that works (either PyCharm or vsCode Extensions)
  • Able to stream live video from single client to single server, no sound
  • Able to save video feed from client to server for playback after stream ends, unique filename, no corruption
  • Add Time Stamps and Location in video feed (on Client end)
  • Allow port number and IP to be specified in bash command line as arguments (ie: python3 client.py 192.168.1.3 1025)
  • Organize ongoing/saved feeds in database with timestamps, name, location, duration, etc.
  • Setup Email Alerts to admin email to inform of new clients/client shutdowns and outages via Sendgrid API (socket server)
  • Use Django web server (WITH LOGIN) to access videos and play them in browser (seperate user DB, salt & hash)
  • Let users organize videos and query the db to filter videos by length, location, or timestamps
  • Allow users to control socket server and socket clients from Django Web GUI (ie: terminate connections, start connections)
  • Allow for the use of multiple client streams with a central socket server (can add/remove clients without disruptions)
  • Use bootstrap and Css to make front end responsive and organized
  • OPTIONAL: Add Facial recognition to clients so they can identify who is in frame
  • OPTIONAL: Use Facial recognition on web GUI for login

Target Technologies:

  • Python 3.8 - (OpenCV, Sockets)
  • Flask (for Web GUI)
  • SQLite (for Database)

Sources:

About

A Security System that streams video feeds from client to server, stores them and let's you browse them


Languages

Language:Python 100.0%