Skip to content

3disturbed/Protect_Multitool

Repository files navigation

Mission Statement

Protect Multitool is dedicated to empowering individuals by providing innovative safety solutions that integrate seamlessly into daily life. Our mission is to leverage technology to create discreet, accessible, and effective tools that enhance personal security, raise awareness about human trafficking and modern slavery, and foster a safer world for all.

Visit Deployed Site on Heroku!

Contents

UI

Some color palette details:

  • Primary: #4338CA
  • Success: #10B981
  • Alert: #EF4444
  • Warning: #F59E0B

Back to Contents

User Experience (UX)

The goal is to create a seamless and intuitive user experience that ensures easy navigation, high accessibility, and clear functionality. The design will include:

  • Responsive Design: Optimized for desktop, tablet, and mobile devices.
  • Accessibility: WCAG 2.1 compliance to ensure the platform is usable by all individuals, including those with disabilities.
  • User Flow: Clear and concise navigation paths for different user personas.
  • Feedback Mechanisms: Interactive alerts, success messages, and notifications.

Wireframes

image

image

image

image

image

image

image

Back to Contents

Features

  1. Safety Transit Features:

    • Timed check-ins using Django’s DateTimeField to ensure user safety.
    • Automated notifications if check-ins are missed.
  2. User Management:

    • Registration and Login.
    • Profile management for updating emergency contacts.
    • Two-factor authentication for secure access.
  3. Interactive Tools:

    • Google Maps API integration for route planning.
    • SMS notifications via Twilio.
    • Task management features using Celery.
  4. Notifications:

    • Real-time alerts for critical updates.
    • Push notifications for missed check-ins or safety warnings.
  5. Automated WhatsApp message event:

    • Once triggered using a hidden feature like a game, this event will trigger an automated message to be sent via WhatsApp to the user's set emergency contacts.
    • Emergency contacts will be set via the user's account, using PostgreSQL and Django all auth.
    • Messaging will be sent using MessageBird API.
    • Message will be sent via WhatsApp and is currently generic for testing purposes. Messages include user name, contact name, location (if user allows us to access their location) and in specific cases a URL and Secret key for accessing user routes.

Back to Contents

Safety Transit

The Safety Transit feature functions as a PIN-protected dead man's switch that ensures user safety while in transit.

  • How It Works:

    • The user sets up a journey by inputting their origin, destination, and estimated travel time.
    • They receive periodic prompts to enter their PIN to confirm they are safe.
    • If the user does not enter their PIN within the allotted timeframe, an automated distress signal is sent to their designated emergency contact.
    • The distress signal includes the user's last known location, journey details, and any additional safety information.
  • Key Features:

    • Customizable Timeframes: Users can set the check-in frequency based on travel duration.
    • Silent Alarm Option: If the user is in danger and cannot safely enter their PIN, they can enter an alternative code to send an alert silently.
    • GPS Integration: Automatically tracks the user's journey and updates emergency contacts on progress.
    • Failsafe Mechanism: If internet or GPS connectivity is lost, the system attempts to send a final update with the last known location.

Back to Contents

Kicky Frog and Fake Games

To provide a stealth distress signal, the platform includes fake games like Kicky Frog, designed to help users discreetly trigger silent alarms.

  • How It Works:

    • The user opens the fake game, which looks like an ordinary mobile game (e.g., a simple Flappy Bird-style game).
    • If the user fails on the first obstacle (deliberately or due to distress), the system triggers a silent alarm.
    • The silent alarm sends a distress message to the user's emergency contact, along with location data if available.
  • Key Features:

    • Disguised Interface: Looks like a real game to avoid raising suspicion.
    • Customizable Triggers: Users can define multiple failure conditions to trigger the alarm.
    • Fake Chat Option: A built-in chat window that appears real but can be used to send pre-set distress messages.
    • Stealth Activation: Ensures a way to seek help without alerting potential threats.
    • GPS-Enabled Alerts: If enabled, the distress signal includes the user's location.

Back to Contents

Tech Stack

  • Frontend:

    • HTML, CSS, JavaScript.
    • Responsive design frameworks (e.g., Bootstrap or TailwindCSS).
  • Backend:

    • Django – for its robust ORM and built-in features.
    • Celery – for task scheduling and asynchronous processing.
  • APIs and Integrations:

    • Google Maps API – for route planning.
    • Twilio – for SMS notifications.
  • Database:

    • PostgreSQL – for reliable and scalable data storage.
  • Hosting and Deployment:

    • AWS or Heroku – for hosting the application.

Back to Contents

Installation & Setup Guide

To set up the project locally, follow these steps:

  1. Clone the repository:
    git clone https://github.com/your-repo/protect-multitool.git
  2. Navigate into the project directory:
    cd protect-multitool
  3. Install dependencies:
    pip install -r requirements.txt
  4. Set up environment variables in a .env file.
  5. Run migrations:
    python manage.py migrate
  6. Start the development server:
    python manage.py runserver

Back to Contents

Contribution Guidelines

  • Follow the branching model: feature branches should be prefixed with feature/, and bug fixes with fix/.
  • Submit pull requests with detailed descriptions and relevant issue links.
  • Follow PEP 8 style guidelines for Python and adhere to best practices for frontend code.

Back to Contents

API Documentation

  • Authentication API: Login, registration, and user management.
  • Safety Transit API: Creating and managing user journeys.
  • Notification API: Sending alerts via SMS, email, and WhatsApp.
  • API documentation is auto-generated with Swagger.

Back to Contents

Security Considerations

  • Encrypted communications using HTTPS.
  • Secure API endpoints with JWT authentication.
  • Rate limiting to prevent abuse.

Back to Contents

Testing & Debugging

  • Run tests with:
    pytest
  • Use logging and Django Debug Toolbar for debugging.

Back to Contents

Deployment Guide

  • The project is deployed using Heroku.
  • CI/CD pipeline setup with GitHub Actions.
  • Database hosted on AWS RDS.

Back to Contents

License & Legal Considerations

  • This project is licensed under the MIT License.
  • If using third-party APIs, ensure compliance with their terms of service.

Back to Contents

Team

Ben Darlington

image

GitHub

LinkedIn

  • Scrum Leader
  • Repo Manager
  • Presentations
  • Javascript / Game Developer

Back to Contents

Loch

image

GitHub

LinkedIn

Enjoy creativity in all its forms. As someone new to development, I find immense satisfaction in bringing ideas to life and seeing the final project take shape. Through this experience, I’ve come to appreciate the value of strong leadership and proactive teamwork. Also, learnt some of Githubs true strengths and weakness.

Back to Contents

Michael McCourt

image

GitHub

LinkedIn

I'm a 27 year old half digital nomad constantly moving between Ireland, Holland and Spain with a military background before working in Tech Support and studying coding from last year with Code Institute. The experience was awesome, I learnt a lot about working on a project that is backend heavy and had a lot of fun getting creative and implementing solutions. -Back-end Engineer -MessageBird/WhatsApp wizard

Back to Contents

Musaddeka Ali

image

Github

LinkedIn

This Hackathon marks my first experience in a collaborative coding environment. Starting the course with no prior background in tech or coding, I am enjoying learning programming languages and building web applications. This project has been an opportunity for me to grow both technically and collaboratively - I’ve gained hands-on experience working in a team, contributing to repositories, and embracing effective teamwork practices. I’ve learned a lot from my teammates, including advice on best practices and exploring new technologies, which have broadened my perspective and skills.

Back to Contents

Farha Tamanna Islam

image

GitHub

LinkedIn

Hi, I am Farha. I have worked in embedded development for several years but now embracing a new journey in full stack SW development. For me Hackathon is an excellent platform to sharpen skills and gather new experience. In this Hackathon we have worked in a very Dynamic and well structured team. Our Project goals to help people in their emergency situation. I am very happy to be a part of this project. Hope we can help people to assure their safety.

Back to Contents

Fatima Abaji

image

GitHub

LinkedIn

Participating in the hackathon has been an incredible experience. Collaborating with an amazing team allowed me to gain valuable insights into real-world software development challenges. As a junior developer, it was a fantastic opportunity to apply my skills in a practical setting, learn from more experienced teammates. The experience has greatly enhanced my understanding of teamwork, communication, and the fast-paced nature of development, making it an invaluable step in my growth as a developer.)

Back to Contents

About

Protect Multitool, A multitool to protect.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors