{"id":23061783,"url":"https://github.com/hammadhttps/billing_system_in_java","last_synced_at":"2025-04-03T07:19:49.472Z","repository":{"id":257673877,"uuid":"855974737","full_name":"hammadhttps/billing_system_in_java","owner":"hammadhttps","description":" A Java-based LESCO billing system that manages employee and customer records using file I/O. The system should handle employee login, customer information, billing records, and tariff information","archived":false,"fork":false,"pushed_at":"2024-10-20T14:24:10.000Z","size":54,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-08T21:11:17.494Z","etag":null,"topics":["exception-handling","filehandlinginjava","iostreams","java","oops-in-java","try-catch"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hammadhttps.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-09-11T19:08:37.000Z","updated_at":"2024-12-06T00:14:48.000Z","dependencies_parsed_at":null,"dependency_job_id":"94014c25-f932-4272-a9ab-a344f44a74c2","html_url":"https://github.com/hammadhttps/billing_system_in_java","commit_stats":null,"previous_names":["hammadulhassan5812/lesco_billing_system_in_java","hammadhttps/billing_system_in_java"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hammadhttps%2Fbilling_system_in_java","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hammadhttps%2Fbilling_system_in_java/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hammadhttps%2Fbilling_system_in_java/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hammadhttps%2Fbilling_system_in_java/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hammadhttps","download_url":"https://codeload.github.com/hammadhttps/billing_system_in_java/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246952278,"owners_count":20859813,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["exception-handling","filehandlinginjava","iostreams","java","oops-in-java","try-catch"],"created_at":"2024-12-16T03:18:30.208Z","updated_at":"2025-04-03T07:19:49.454Z","avatar_url":"https://github.com/hammadhttps.png","language":"Java","readme":"You have to create a LESCO billing system using java and file I/O. To implement the system, you have to\nimplement following requirements\n\n\n1. The LESCO billing system shall maintain records of usernames and passwords of LESCO\nemployees. This information can be kept in a file with name EmployeesData. The\nEmployeesdata file shall have one row for each employee, in each row there are two comma\nseparated values, the first value is username and the second value is password. Usernames\nshall be unique (i.e. no two rows will have the same username appearing in them).\nEmployees can change their passwords by providing their username and current password.\n\n2. The LESCO billing system shall maintain record of customer information in a file named\nCustomerInfo. The CustomersInfo file shall save the information such as a unique 4 digit\ncustomer id (generated by the system), customer's CNIC number (13 digit number provided\nby the customer without dashes), Customer name, Address, Phone number, Customer Type\n(commercial or domestic), meter type (Single Phase or Three Phase), Connection Date,\nRegular Units Consumed, Peak Hour Units Consumed. All these fields will be comma\nseparated. Customer id and CNIC number may serve as username and password for the\nLESCO customers respectively. The Regular Units Consumed field corresponds to the meter\nreading for which the customer has paid the bill. In other words this field represents the\nunits consumed (for both types of meters) and paid for at a given time. It is set to zero when\na new meter is installed and a row is added in the CustomersInfo file. Then this field is\nupdated whenever a bill is paid (its status is set to paid by the LESCO employees). The Peak\nHours Units Consumed is also similar to the Regular Units Consumed but it is set for 3-phase\nmeters only. For the 1-phase meters, it is kept blank. These two fields will be used to\ncalculate the number of units consumed in a particular month.\n\n\n3. The LESCO billing system shall maintain record of billing information in a file named\nBillingInfo. The BillingInfo file shall store information such as 4 digit customer id (borrowed\nfrom the CustomersInfo file), Billing month, Current Meter Reading Regular, Current Meter\nReading Peak, Reading Entry Date in format DD/MM/YYYY (cannot be in future, consider it\nto be issue date of the bill), Cost of electricity, Sales Tax Amount, Fixed Charges, Total Billing\namount, Due Date in format DD/MM/YYYY (7 calendar days after the entry of Current Meter\nReading), Bill Paid Status (Paid or Unpaid), Bill payment Date in format DD/MM/YYYY\n(cannot be before Reading Entry Date). There will be a new row for each meter customer\nevery month in this file. For single phase meters, the unit price of electricity is 5 rupees per\nunit for domestic customers and 15 rupees per unit for the commercial customers. For three\nphase meters two meter readings are stored and for the regular units the price is 8 rupees\nper unit and for peak hours the price is 12 rupees per unit for domestic customers. For\ncommercial customers the unit price is 18 rupees and 25 rupees per unit in regular and peak\nhours respectively. For the 1-phase meters and the off-peak units in 3-phase meters the\nnumber of units consumed can be calculated by subtracting the Regular Units Consumed\n(mentioned in file CustomerInfo) from the Current Meter Reading Regular. For calculation\nabout the peak hours units subtract the Peak Hours Units from Current Meter Reading Peak.\n\n4. The LESCO billing system shall maintain the information about the sales tax, fixed charges\nand the per unit tariff TariffTaxInfo file. This file shall have 4 rows only. The first row keeps\ntariff and tax information about domestic customers with 1-phase meter. The second row\nkeeps tariff and tax information about the commercial customers with 1-phase meter. The\nthird row keeps tariff and tax information about domestic customers with 3-phase meter.\nThe fourth row keeps tariff and tax information about the commercial customers with 3-\nphase meter. Sample entries are as follows:\n1Phase,5,,17,150\n1Phase,15,,20,250\n3Phase,8,12,17,150\n3Phase,18,25,20,250\nThe entries in a row correspond to the meter type, regular unit price, peak hour unit price\n(left blank for 1-phase meters in the first 2 rows), the percentage of tax (for example 17\npercent of the cost of electricity), fixed charges.\n\n\n5. The LESCO billing system shall allow the LESCO employees with valid username and\npassword (after login) to add or update an entry (or row) in the files CustomerInfo and\nBillingInfo. The employees will add a row in CustomerInfo file whenever a new meter is\ninstalled for a customer. The system shall not allow more than 3 meters against a CNIC. If\nan employee tries to enter more than 3 meters for a CNIC, the shall disallow the action and\ndisplay an error message stating \"Not Allowed! Maximum 3 meters allowed per CNIC.\". The\nsystem has access to NADRADB file which stores three comma separated values for each\nCNIC: CNIC Number (13 digit without dashes), Issuance Date (format DD/MM/YYYY), Expiry\nDate (format DD/MM/YYYY). The NADRADB file shall have multiple records (one for each\nperson with a CNIC)\n\n6. The employees will add a row in BillingInfo every month when the meter reading needs to\nbe entered in the system. The employees will update the Bill Paid Status field in the\nBillingInfo file once they receive offline information about payment against a bill. Once this\ninformation is changed, the system shall automatically update the Total Units Consumed\nfield in the file CustomersInfo file to Current Meter Reading.\n\n\n7. The LESCO billing system shall allow the LESCO employees with valid username and\npassword (after login) to add or update entries in the TariffTaxInfo file. The system shall\nmake sure that exactly 4 rows exist in this file. The employees can update the tariff, tax etc.\nwhenever they find it appropriate.\n\n8. The LESCO billing system shall allow the LESCO employees with valid username and\npassword (after login) to view any bill after providing its 4 digit customer id.\n\n9. The LESCO billing system shall allow the LESCO customers to view their current bill. The\ncustomers need to provide their 4-digit customer id, their CNIC number, their meter type\n(1-phase or 3-phase), and their current meter reading(s). The bill should separately show\nthe cost of electricity, tax, and the fixed charges. The same bill should also show the total\namount due and the due date of the bill. In addition, the bill payment status should also be\nshown on the bill (as per the records in the relevant LESCO files). The bill should display the\ncustomer id, customer name, address, phone number, customer type, meter type, and tariff\nalso. This bill needs not be saved in any file. It is used for view purpose only.\n10. The LESCO billing system shall allow the LESCO employees with valid username and\npassword (after login) to view reports of paid and unpaid bills. The report shall only show\nthe amount of unpaid bills so far and the amount of paid bills so far.\n\n11. The LESCO billing system shall allow the LESCO employees with valid username and\npassword (after login) to view reports of customers whose CNIC is about to expire in next\n30 days. The system shall lookup the NADRADB file to know the expiry dates of CNICs.\n12. The LESCO billing system shall allow the LESCO customers to update the expiry date of their\nown CNIC mentioned in NADRADB file. The system shall require the customers to enter their\nCNIC number and customer number before they can update the expiry date.\n\n\n\n![7816980a-5c42-47f5-ac2e-cde20e552772](https://github.com/user-attachments/assets/ec0216a4-effa-4e52-b73c-bbd27150bfe1)\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhammadhttps%2Fbilling_system_in_java","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhammadhttps%2Fbilling_system_in_java","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhammadhttps%2Fbilling_system_in_java/lists"}