This project is a Full Stack Payment Management Application that allows users to manage a list of payments via user interface with CRUD functionality, evidence file uploads, and more. It includes both a backend (FastAPI) and a frontend (Angular 18+).
- CRUD Operations:
- Create, read, update, and delete payments.
- File Uploads:
- Upload evidence files (PDF, PNG, JPG) when marking payments as completed.
- Download uploaded evidence files.
- Data Normalization:
- Normalize payment data from a CSV file and store it in MongoDB.
- Dynamic Status Updates:
- Automatically update payment statuses (e.g.,
due_now,overdue) based on due dates.
- Automatically update payment statuses (e.g.,
- Server-side Pagination and Filtering:
- Fetch paginated and filtered payment data with search capabilities.
- Total Due Calculation:
- Dynamically calculate
total_dueusing discount and tax percentages.
- Dynamically calculate
- Payment Management UI:
- Search payments with filters.
- View detailed payment information.
- Create, update, and delete payments.
- Upload and download evidence files.
- Dynamic Status Management:
- Prevent setting a status to
completedwithout an evidence file.
- Prevent setting a status to
- Address and Currency Auto-complete:
- Use APIs to auto-complete and validate fields.
- Responsive Design:
- User-friendly and responsive for various devices.
- Python 3.10+
- Angular 19
- MongoDB
- Clone the repository:
git clone https://github.com/relhe/billpilot.git cd billpilot/back-end - Create a virtual environment and activate it:
python -m venv venv source venv/bin/activate # For Windows: venv\Scripts\activate
- Install dependencies:
pip install -r requirements.txt
- Run the FastAPI server:
uvicorn main:app --reload
- Navigate to the frontend directory:
cd ../front-end - Install dependencies:
npm install
- Run the Angular development server:
ng serve
- GET /payment: Fetch paginated and filtered payment data.
- POST /payment: Create a new payment.
- PUT /payment/{payment_id}: Update payment details.
- DELETE /payment/{payment_id}: Delete a payment by ID.
- POST /: Upload evidence files for a payment.
- Search, view, add, edit, and delete payments.
- Upload/download evidence files.
- Dynamic pagination and filtering.
/billpilot
│
├── backend
│ ├── main.py
│ ├── models.py
│ ├── database.py
│ ├── requirements.txt
│
├── frontend
│ ├── src
│ ├── angular.json
│ ├── package.json
│ ├── tsconfig.json
│
└── README.md
This project is licensed under the MIT License.
For questions or suggestions, please reach out to:
- Email: renellherisson@gmail.com