Skip to content

harshnishad/Desktop-Agent-Application

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

95 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Desktop Agent Application

Top Contributors

Team Members:

  • KRISH GUPTA
  • HARSH NISHAD
  • YUGDEEP PARIHAR
  • ARYAN RAJPUT
  • Application Report File

  • Report File: https://docs.google.com/document/d/15cm1dQlnkONjgso4lhXPmMjbdbIx03XL/edit?usp=sharing&ouid=109225541696855840474&rtpof=true&sd=true
  • Application Working Video

  • Working Video: https://drive.google.com/file/d/1fF3iS2wmMo0h9PiDb5kE_dpGXMuZ7fnp/view?usp=drive_link
  • Technologies Used

    1. Python

    • Core Language: Python will be the primary language for developing the desktop agent application.
    • Libraries:
      • pyautogui: For capturing screenshots.
      • pynput: For monitoring keyboard and mouse activity.
      • asyncio: For handling asynchronous tasks like periodic screenshot capture and data uploads.
      • requests: For sending HTTP requests to upload data to cloud services.
      • pymongo: For interaction with MongoDB if local storage is required before upload.

    2. Amazon Web Services (AWS)

    • Amazon S3: For storing and managing uploaded screenshots and activity logs.
    • AWS Lambda: For handling the backend processing of uploads, such as file storage or data transformation.
    • AWS IAM: For managing permissions and roles required for secure interaction with S3 and Lambda.
    • Boto3: AWS SDK for Python to interact with S3 for uploading files.

    3. FastAPI

    • Used for creating an API that handles configuration updates from a web application, allowing the agent to fetch new configurations (e.g., interval times, screenshot settings).

    4. MongoDB

    • A NoSQL database used for temporarily storing captured data locally (e.g., activity logs and screenshots) before uploading to cloud storage.

    5. React.js

    • For the front-end of the web application where users can configure the agent settings (e.g., screenshot intervals, whether screenshots should be blurred, etc.).

    6. Encryption & Security

    • PyCryptodome: A library for implementing encryption to ensure that data is securely uploaded to S3.

    7. System-level Tools

    • Time Zone Management: Utilizing Python's tzlocal or pytz libraries for detecting and managing time zone changes.

    8. Testing and Debugging Tools

    • Postman: For testing and validating APIs through automated requests, response checks, and collaboration on API development.

    9. Error Handling

    • Retry Mechanisms: For retrying failed uploads due to connectivity issues.
    • Queueing: To handle data that couldn’t be uploaded immediately, ensuring it's uploaded once the network is restored.

    Application Key Features

  • Different dashboards for client and admin
  • Manage user total active time
  • Manage user total inactive time
  • Take screenshot manually and automatically
  • Store screenshots in AWS S3 bucket
  • Locally store screenshots in queue if network related problem arise
  • Track Mouse and Keyboard Movements
  • Gives warning if user become inactive for more than 30 seconds
  • Track and store different application usage of client on device and showcase on admin portal
  • Track battery status
  • Show current time according to location
  • And some more......
  • Important Instructions To Run

    Step 1- git clone https://github.com/harshnishad/VinoveProject.git
    
    step 2 ->For Frontend
    
    cd client
    npm i
    npm start
    
    step 3->For backend
    
    cd server
    pip install "all dependencies"
    python main.py
    
    

    ALWAYS STARTS SERVER FIRST

    ID , PASSWORD ->

    id- client , pass- 1111

    id- admin , pass- 0000

    Dependencies To Install

    Backent Dependencies

    1.motor
    2.pyautogui
    3.requests
    4.pymongo
    5.pygetwindow
    6.fastapi
    7.pydantic
    

    Frontend Dependencies

    1.axios
    2.react-router-dom
    

    Repository Information

    Commit History

    This repository includes a complete commit history that reflects the development process of the project. All changes and updates made during the development phase are documented in the commit history, providing a detailed record of the project's evolution.

    To view the commit history:

    1. Navigate to the Commits section of this repository on GitHub.
    2. Browse through the commits to see the changes made over time.

    For a more comprehensive understanding of the development process, you can review the commit messages and associated changes.

    About

    No description, website, or topics provided.

    Resources

    Stars

    Watchers

    Forks

    Releases

    No releases published

    Packages

    No packages published

    Contributors 4

    •  
    •  
    •  
    •