- 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.
- 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.
- 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).
- A NoSQL database used for temporarily storing captured data locally (e.g., activity logs and screenshots) before uploading to cloud storage.
- 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.).
PyCryptodome
: A library for implementing encryption to ensure that data is securely uploaded to S3.
- Time Zone Management: Utilizing Python's
tzlocal
orpytz
libraries for detecting and managing time zone changes.
Postman
: For testing and validating APIs through automated requests, response checks, and collaboration on API development.
- 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.
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
1.motor
2.pyautogui
3.requests
4.pymongo
5.pygetwindow
6.fastapi
7.pydantic
1.axios
2.react-router-dom
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:
- Navigate to the Commits section of this repository on GitHub.
- 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.