For my college program’s capstone, I built this web application to serve Canadian retailers and wholesalers as they endeavor to comply with environmental regulations. Having worked in this field myself as a sustainability coordinator, I found environmental compliance to be very difficult to manage. To this end, I decided to build a solution to help manage environmental compliance.
Description
This web app is intended primarily to serve customers in the wholesale and retail business sectors as they endeavor to comply with environmental stewardship regulations in Canada. It simplifies determining who is responsible for remitting environmental handling fees (EHFs) and determining how much should be paid.
Certain goods such as batteries, fluorescent lighting, or paint products contain harmful chemicals which require specialized recycling and disposal processes. These processes come at a cost, and in Canada there are laws determining which business or organization is responsible for paying the cost. An example is a Canadian wholesale business which import batteries from China, then sells the batteries in bulk to a consumer retail chain. One of these parties is responsible for remitting recycling fees to a 3rd party organization, called a Producer Responsibility Organization (PRO). The first problem is determining which party should pay as it is not always clear. The second problem is the challenge of determining how much should be paid, because current laws change between provinces and states and the calculation methods are varied.
The app solves its problem in three ways:
- Providing a simple, interactive, click-by-click flow chart to determine if the user is responsible for remitting stewardship fees. If the user is not responsible, the flow chart suggests actions for the user to take.
- Helping users submit their product sales to calculate their remittance fees. When this is complete, users can filter their past submissions by date and product. This displays the categories, quantities, and total fees per line, as well as a net total owed for the selected period.
- Connect users to the relevant 3rd party PRO so they can easily log-in and pay their fees in a timely fashion.
Sample Data
Example Sales Data
product SKU | product category | product subcategory | product format | units per package | quantity sold (packages) |
000444999 | battery | ni-mh | AAA | 10 | 11439 |
777555444 | battery | li | AA | 4 | 212004 |
888111888 | lighting | flurorescent | tube | 2 | 1819 |
005710750 | lighting | LED | A19 | 1 | 86760 |
Database Schema Examples
Table / Attribute | Description |
pro | Producer Responsibility Organization |
pro_name | name of the organization |
nation | location where the PRO operates |
state_or_province | location where the PRO operates |
product_category | |
name | battery, lighting, paint, tire, etc. |
category | foreign key, select the parent product category |
name | battery chemistry, lightbulb chemistry, etc. |
fee_calculation | the method for calculating the stewardship fee |
method_name | description of the calculation, i.e., by weight or by quantity or per 100 units, etc. |
calculation_formula | [battery_weight] * [quantity_per_package] / 100 * 0.005 |
legislation | legal texts defining stewardship regulations |
name | the official name of the law or bylaw |
text | the body of text of the regulation |
effective_date | the date the legislation became effective |
end_date | the date the legislation becomes ineffective (if any) |
Filtered Sales Data
Filtered List for User | ||
Product Description | Quantity | Fee (CAD) |
Battery | ni-mh | AAA | 10 pack | 11439 | $1500.50 |
Battery | li | AA | 4 pack | 212004 | $1064.02 |
Lighting | fluorescent | tube | 2 pack | 1819 | $114.00 |
Lighting | LED | A19 | 1 pack | 86760 | $803.87 |
Remit fees to: | Call2Recycle 100 Sheppard Avenue East Suite 800 Toronto, ON M2N 6N5 |
Highlights
MudBlazor Styling
The app makes use of MudBlazor’s myriad components. There are drop-downs, data grids, date pickers, snack bars, and more.
Flowchart
A highlight of the app is a flowchart which helps users navigate their legal obligations using simple yes/no questions.
Excel Downloads
Whenever data is displayed in a grid/table, it can be downloaded into an Excel spreadsheet.
Technologies Used
- ASP.NET / C# / Blazor
- Mudblazor
- PostgreSQL
- Azure App Service
- Github Actions
- Visual Studio for MacOS
- Katalon Recorder