• IT & Programming
  • February 25, 2025
  • 108 Views

Looking for a Python Developer for Code Review, API Integration, and .exe Compilation

  • Freelancer Type Individual
  • Project Duration 1-3 Weeks
  • English Level Fluent
  • Languages English

Description

I am seeking an experienced Python developer to review, refine, and finalize an existing codebase. The code is relatively short and performs simple functions. The task involves identifying and fixing errors, conducting thorough testing, optimizing performance, and compiling the finalized code into a standalone executable (.exe) with all necessary dependencies.

Application Purpose and Functionality

The application is designed to:

  1. Monitor, fetch, and process CSV files (either uploaded locally or downloaded via Selenium).
  2. Automatically send bulk emails based on user-defined filters, with an option to add a "Case opened" note to relevant items (consignments) on a web portal.
  3. Maintain a single unified log of all processed/unprocessed entries in a CSV file, recording success/failure, reasons, and timestamps.
  4. Provide a graphical user interface (Tkinter + ttk) for manual and automated CSV processing, filter configuration, Outlook and portal credential management, settings customization (paths, time zones), and log viewing.

Architecture Overview

  1. Tkinter-based GUI with tabs for Main (processing/autopilot), Filters (rule setup), Accounts (credentials), Logs (search/sorting), and Settings.
  2. Configuration stored in an encrypted config.json (Fernet encryption).
  3. Logging in a single unified_log.csv (merging email_log and unprocessed_log).
  4. CSV Processing Workflow: Upload/download CSV, map columns, apply filters, send emails, log results.
  5. MachShip Portal Interaction via Selenium: Login via Azure B2C, export CSV, add case notes.
  6. Autopilot Mode for scheduled automatic CSV download and processing.

Key Issues and Areas for Improvement

1. MachShip Authentication:

  • Currently, the code uses Selenium to log in, extract cookies, and attach them to a requests.Session. If MachShip supports a more direct approach via OAuth2, tokens, or an official API credential system, replace the Selenium login with that method. Otherwise, keep the existing Selenium-based approach.

2. Ensure CSV Download from MachShip Matches “Export Grid”:

  • It is necessary to confirm that calling /apiv2/consignments/getActive truly returns the same data and columns as the "Export Grid" feature in MachShip’s UI for active consignments.

3. Add Open Case Note:

  • The interface includes a checkbox “Add ‘Case opened’ note”, which triggers Selenium to mimic user actions in the UI. If MachShip has an official API endpoint for notes, switch to that instead. Otherwise, ensure that the existing Selenium implementation accurately replicates the UI functionality.

4. Thorough Filter Testing:

  • The filtering logic (matching by status, company, service, etc.) must be carefully verified to prevent errors in email distribution—such as mistakenly sending emails to the wrong recipients or skipping necessary ones. This is critically important for stable operation in production.

5. Replace Outlook COM with OAuth:

  • Where possible, email sending should be done via Microsoft Graph with OAuth. If there are still references to outdated Outlook COM calls in the code, they should be removed or replaced with Microsoft Graph. Outlook COM should be kept only as a fallback if absolutely necessary.

6. Review All Code:

  • Ensure robust error handling so that the application does not freeze, crash, or enter an infinite loop under any user action (editing settings, scheduling emails, etc.).

7. Polish the UI:

 
  • Apply final UI refinements: align elements, adjust spacing, refine button/label names, and add tooltips to enhance user-friendliness.

Questions for the Developer

  1. How would you replace Selenium with API requests?
  2. How would you implement OAuth2 for Microsoft Graph API?
  3. How would you securely store Fernet encryption keys?
  4. How would you prevent Tkinter from freezing during long-running tasks?
  5. How would you write tests for CSV filtering logic?
  6. Have you built a Tkinter log table with search and sorting features before?

Timeline & Budget

  • How long do you estimate these improvements will take?
  • What is your approximate fee?

If you have experience in these areas and are interested in the project, please send me your proposal!

Skills Required

Developer

Project ID:RH-18801-lancer

Project Proposals (4)

Vedprakash
  • 4 days ago
  • No Reviews
  • ₹20,000.00
  • in 20 days

I hope this message finds you well. I am writing to express my strong interest in the development project. As a Full Stack Developer with 4.7 years of experience in product-based companies, I believe my skill set and passion for frontend development make me an excellent fit for this role. In my career, I have successfully contributed to multiple projects, specializing in both frontend and backend development. I have extensive hands-on experience with ReactJS, and I am proficient in building modern, responsive, and highly interactive user interfaces. My experience extends beyond just ReactJS, as I have also worked with various tools and technologies such as JavaScript, Python,Node.js, Express, MongoDB, and RESTful APIs, giving me a holistic view of the development process and the ability to work seamlessly across the full stack. Having worked in product-based companies, I have developed a strong understanding of the need for scalability, user-centric design, and high-quality code. I am well-versed in best practices such as component-based architecture, hooks, and state management using Redux. Furthermore, I am experienced in collaborating with cross-functional teams, ensuring that we align product goals with technical solutions, and continuously iterating to improve both performance and user experience. My ability to take ownership of projects, coupled with my problem-solving skills and attention to detail, allows me to contribute meaningfully to the success of the product. I am confident that my technical background, coupled with my passion for building scalable, user-friendly applications, would be a great asset to your team. I am excited about the opportunity to bring my expertise in ReactJS and full-stack development to your project, and I would love the chance to further discuss how I can contribute to its success. Thank you for considering my application. I look forward to the possibility of working together. Sincerely, Vedprakash Pandey https://www.linkedin.com/in/vedprakash-pandey/ 8237777987

Siddharth Shankar
  • 11 days ago
  • No Reviews
  • ₹20,000.00
  • in 27 days

Hi zixisq I am excited for any opportunity which comes in my way. I had total 3 years of experience in IT sector. Do let me know if there is any opportunity which suits my interest.I am desperately looking for opportunities which can help me upskil my knowledge and help me financially too a bit.Do let me know Thanks and regards

Tahir Khan
  • 27 days ago
  • No Reviews
  • ₹19,999.00
  • in 21 days

I have 3+ years of experience in software development. Let's connect to discuss further

Danish Khan
  • 28 days ago
  • 5.0 ( 1 review )
  • ₹45,000.00
  • in 45 days

Hi, I am an experienced Python developer with expertise in automation, Tkinter GUI development, API integration, and optimizing existing codebases. I have worked extensively with Selenium, OAuth2 authentication, Microsoft Graph API, and CSV processing. How I Will Address Your Requirements: 1. MachShip Authentication: I will explore API-based authentication to replace Selenium where possible. 2. CSV Download Verification: I will ensure the API returns the correct data structure matching "Export Grid." 3. Case Note Addition: I will implement API-based notes if available or refine the Selenium approach. 4. Filter Testing: I will create test cases to validate filtering logic, ensuring accuracy in email distribution. 5. OAuth2 for Microsoft Graph: I will integrate OAuth for email sending while keeping COM as a fallback. 6. UI & Performance Enhancements: I will optimize the Tkinter UI, prevent freezing, and improve error handling. 7. Secure Encryption Handling: I will ensure Fernet encryption keys are securely stored. I have previously built Tkinter-based log tables with search and sorting, and I will implement the same for your project. Timeline & Budget: I estimate 45 days for completion and propose a budget of 45000 INR. I would love to discuss further and refine the scope as needed. Let’s connect! Best regards, Danish Khan

Make Payment to active Send Your Proposal Form

Budget
₹20,000.00
Fixed

18 Days left

zixisq

Member since February 23, 2025
View Profile

About The Employer

  • 0 Projects completed
  • Payment Method
  • Email Verified

Report Project