develop a backend project using Python

Job ID: 39533828

Budget: ₹1,500 – ₹12,500 INR

I need you to assemble and develop a **backend project** using **Python** and the **FastAPI framework** to perform the following tasks, with direct integration to our existing accounting software database (**DBISAM**).

**The goal of the project** is to enable the seller to input sales invoices only, with the ability to view reports, export them as PDF or CSV, and send them directly via WhatsApp.

### Detailed Tasks Required:

#### 1. Project Structure Assembly

* Organize the project according to the proposed structure (app/core, app/models, app/repositories, app/services, app/api).
* Ensure that all files and layers are separated and clearly organized.
* Make sure the code is clean, well-commented, and easy to maintain.

#### 2. Database Integration

* Connect the system directly to the existing DBISAM accounting database (via ODBC using `pyodbc`).
* Ensure that all operations (add invoice – view invoices – generate reports) interact with the same tables of the main program, without any duplication or alteration of the database.
* Update/modify queries and field names to exactly match the actual tables and fields in the accounting program (management will provide any missing details or differences in naming).

#### 3. Core System Features Implementation

* **Add Sales Invoice:**
Build an endpoint for entering invoices (including their items), saving them directly into the DBISAM database.
* **View Invoices:**
Build an endpoint to view registered invoices, with filtering options by user or date.
* **Report Export:**
Build a service to export invoice reports to CSV and PDF (using a suitable HTML template with Arabic language support).
* **Send Reports via WhatsApp:**
Integrate the system with the Twilio WhatsApp API (or any alternative library, as agreed) to send a report or invoice directly to the client.
* **Login :**
add simple authentication (username/password), based on the users table in DBISAM.

#### 4. Full System Testing

* Test all the above functions and ensure they work correctly with the real database.
* Verify that all added or modified data appears instantly in the main accounting program without any issues or conflicts.

#### 5. Documentation and Operation

* Provide clear instructions for running the project (a detailed README).
* List all required dependencies (pyodbc, FastAPI, pdfkit, Twilio, etc.).
* Briefly explain how to configure the database connection settings and WhatsApp credentials.

#### 6. Final Delivery

* Deliver the complete code + the requirements.txt file.
* Ensure the code can be run directly via Uvicorn or similar, with automatic documentation support (Swagger UI).

---

**Important Notes:**

* Everything must be connected to the current DBISAM database, with no data copied or separated into other tables.
* Any modification to queries to match actual table/field names should be documented in the code.
* Ensure all reports (PDF/CSV) fully support the Arabic language.
* If there are any difficulties integrating ODBC with DBISAM, contact management for support or additional details.