C# programmer to design, implement and test a series of re-usable classes (using standard OOP concepts)
- or -
Post a project like this$$
- Posted:
- Proposals: 1
- Remote
- #93352
- Expired
Description
Experience Level: Intermediate
We are looking for a C# programmer to design, implement and test a series of re-usable classes (using standard OOP concepts) to validate and generate shipping and label data for several of UK national and international parcel carriers. The purpose of the exercise is to develop a set of classes which will be used in a pre-existing multi carrier shipping software solution. The classes should utilise the .NET Framework, targeting version 4.0.
The parcel carriers in scope for this project are Yodel, City-Link, UKMail and UPS. In terms of integration, Yodel, City-Link and UKMail use an offline routing ‘gazetteer’ database to route parcels using a set of documented business rules and to create shipping and label data whereas UPS use schema-defined XML messages passed to and from a dedicated HTTP server to accomplish the same task. Documentation is readily available for each of these carriers, as are the offline routing databases where applicable. Pricing/billing of shipments is not required for this project.
The developed classes should be able to achieve the following:
1. Accept data for the shipment (addresses, contacts, services, weights, etc.)
2. First level validation of the data (ensure mandatory fields are present, values are in range of the business rules, etc.)
3. Second level validation of data (errors raised from violation of the carriers shipping rules)
4. Third level validation of data (errors from the carriers routing database e.g. service not available, postcode or area not found, etc.)
5. Production and temporary storage of shipping data (consignment numbers, routing data, etc.) for later population in to a back-end database
6. Production of the label(s) for the shipment in PDF format (all labels must conform to the carriers specification and must be sized at 4 inches by 6 inches)
In terms of defining ‘re-usable’, all classes in the solution should:
1. Utilise core OOP concepts for efficient coding and maintainability such as polymorphism, inheritance and encapsulation
2. Inherit from a common parent class or interface (the parent should define a common set of properties and abstract/virtual methods for effective re-use and inheritance)
3. Utilise virtual, sealed, override and abstract accessors on properties/methods where appropriate (again for effective inheritance and future maintainability)
4. Correctly utilise public, protected and private access modifiers on properties and methods
5. Use the XML comments system present within the C# language to document the code in a professional manner (e.g. documenting method descriptions, parameters, return values, etc.)
6. Design and code methods/functions to perform a task in an efficient and professional manner (no - spaghetti programming, looping unnecessarily, unnecessary variable casting, storing all parameters as strings, etc.)
7. Trap and handle potential errors in a suitable manner utilising a common (to each class) exception handler
The candidate should be able to demonstrate strong OOP design, implementation and coding skills prior to commencement and should ideally have prior experience in developing shipping solutions utilising the aforementioned carriers. The candidate should also possess excellent testing skills to rigorously unit test the developed classes prior to hand-over.
If you have any questions about this project prior to bidding please do not hesitate to ask, we are looking for a professional and maintainable solution.
The parcel carriers in scope for this project are Yodel, City-Link, UKMail and UPS. In terms of integration, Yodel, City-Link and UKMail use an offline routing ‘gazetteer’ database to route parcels using a set of documented business rules and to create shipping and label data whereas UPS use schema-defined XML messages passed to and from a dedicated HTTP server to accomplish the same task. Documentation is readily available for each of these carriers, as are the offline routing databases where applicable. Pricing/billing of shipments is not required for this project.
The developed classes should be able to achieve the following:
1. Accept data for the shipment (addresses, contacts, services, weights, etc.)
2. First level validation of the data (ensure mandatory fields are present, values are in range of the business rules, etc.)
3. Second level validation of data (errors raised from violation of the carriers shipping rules)
4. Third level validation of data (errors from the carriers routing database e.g. service not available, postcode or area not found, etc.)
5. Production and temporary storage of shipping data (consignment numbers, routing data, etc.) for later population in to a back-end database
6. Production of the label(s) for the shipment in PDF format (all labels must conform to the carriers specification and must be sized at 4 inches by 6 inches)
In terms of defining ‘re-usable’, all classes in the solution should:
1. Utilise core OOP concepts for efficient coding and maintainability such as polymorphism, inheritance and encapsulation
2. Inherit from a common parent class or interface (the parent should define a common set of properties and abstract/virtual methods for effective re-use and inheritance)
3. Utilise virtual, sealed, override and abstract accessors on properties/methods where appropriate (again for effective inheritance and future maintainability)
4. Correctly utilise public, protected and private access modifiers on properties and methods
5. Use the XML comments system present within the C# language to document the code in a professional manner (e.g. documenting method descriptions, parameters, return values, etc.)
6. Design and code methods/functions to perform a task in an efficient and professional manner (no - spaghetti programming, looping unnecessarily, unnecessary variable casting, storing all parameters as strings, etc.)
7. Trap and handle potential errors in a suitable manner utilising a common (to each class) exception handler
The candidate should be able to demonstrate strong OOP design, implementation and coding skills prior to commencement and should ideally have prior experience in developing shipping solutions utilising the aforementioned carriers. The candidate should also possess excellent testing skills to rigorously unit test the developed classes prior to hand-over.
If you have any questions about this project prior to bidding please do not hesitate to ask, we are looking for a professional and maintainable solution.
Robin S.
99% (20)Projects Completed
31
Freelancers worked with
23
Projects awarded
52%
Last project
29 Mar 2018
United Kingdom
New Proposal
Login to your account and send a proposal now to get this project.
Log inClarification Board Ask a Question
-
There are no clarification messages.
We collect cookies to enable the proper functioning and security of our website, and to enhance your experience. By clicking on 'Accept All Cookies', you consent to the use of these cookies. You can change your 'Cookies Settings' at any time. For more information, please read ourCookie Policy
Cookie Settings
Accept All Cookies