logo

As part of my work at CGI, I participated in a project at Aimia (Aeroplan) to help create a service that evaluates the value of an Aeroplan reward versus the requested item (airplane flights). This is right after phase 2.

Responsibilities:

  • Analyze business needs versus data that can be obtained and used.
  • Develop business rules based on available data.
  • Design and develop a part of the solution.

Specifics:

  • Application using Java and Spring Source.
  • Create jUnits tests for everything that is developed.
  • Improve some unit tests written previously to use the Spring tools.
  • Improve error handling because some problems were added by changing the tactics between phases 1 and 2.
  • Improve the orchestration of the solution since it became too big after the additions of features.
  • Document the possibility of having a tool that continuously tests the new code compared to the production one.
Technologies: , , , , , , , , ,

As part of my work at CGI, I participated in a project at Aimia (Aeroplan) to help create a service that evaluates the value of an Aeroplan reward versus the requested item (airplane flights). This is right after phase 1. Phase 2 is to have a job that checks all new bookings of flights and adds those that have not worked or were not found. It adds all the entries in the queue.

Responsibilities:

  • Analyze business needs versus data that can be obtained and used.
  • Develop business rules based on available data.
  • Design and develop a part of the solution.

Specifics:

  • Application using Java and Spring Source.
  • Create jUnits tests for everything that is developed.
  • Create the database DAO for DB2:
    • Create the domain objects classes.
    • Use JDBC Template with RowMappers to read data.
    • Use JDBC Template to write, update and delete the data.
  • Create REST web service and client to:
    • list all bookings to be added to the queue.
    • change a reservation state to tell if it was audited or not.
  • Change some business rules from the analysis of data by the auditors.
  • Add functionality to the web application to help test manually:
    • Possible to obtain the data production in batch and zip them for use with a Mock.
    • Display the content of the new table that lists unaudited bookings.

On the side:

  • Create a Perl script to generate a file containing the airports and their cities to fix an issue in another system that impacts on the audit.
Technologies: , , , , , , , , ,

As part of my work at CGI, I participated in a project at Aimia (Aeroplan) to help create a service that evaluates the value of an Aeroplan reward versus the requested item (airplane flights).

Responsibilities:

  • Analyze business needs versus data that can be obtained and used.
  • Develop business rules based on available data.
  • Design and develop a part of the solution.

Specifics:

  • Application using Java and Spring Source.
  • Create jUnits tests for everything that is developed.
  • Create tools to help testing with jUnit:
    • Tool loading JSON data to compare the desired results.
    • Tool to validate the format of the REST requests and responses.
    • Tool to validate the contents of the database after a test.
  • Create the database DAO for DB2:
    • Create the domain objects classes.
    • Use JDBC Template with RowMappers to read data.
    • Use JDBC Template to write the data.
  • Create the business classes and the mappers between those classes and the DB domain classes.
    • Have the business rules to compute the useful data.
  • Access web services using RestTemplate to retrieve information such as the equivalent points of a reward and the price for trips.
  • Create XSLT to transform a JSON request to a SOAP message and the reverse for the response.
  • Create a web application to help testing manually:
    • View all the values in the tables for a specific entry in the database.
    • Delete all the values in the tables for a specific entry in the database to be able to retry inserting it.
    • Compare views and tables of the database.
    • Post a request in the queues (the entry point of the developed solution).
    • View the messages in the queues.
Technologies: , , , , , , ,

As part of my work at CGI, I participated in the creation of a web application to allow graduate students to apply for master or doctorate.

Version 2 covers the entire process:

  • Allow administrators to create forms to be completed by applicants depending on the program.
  • Allow applicants to create their profile and submit applications.
  • Allow people to support the candidacy of the applicant by uploading a file.
  • Enable internal and external reviewers at McGill to search and visualize the applications according to their permissions.
  • Allow McGill’s administrators to manage permissions.

Responsibilities:

  • Occasionally:
    • Create files for the installation of the database, configuration and deployment of the package.
    • Deploy the application to the test environment.
    • Guide and answer questions from testers.

Specifics:

  • Grails Application.
  • Create and access web services with CXF and Groovy wslite.
  • Create daily maintenance jobs started by a call to a web service.
  • Coding integrations points:
    • With web services.
    • With stored procedures in the Oracle database.
    • By creating views in the Oracle database.
    • Create stubs to use in the development and test environments.
    • With CAS via SAML to retrieve the logged-in user attributes.
  • Generate PDF with Flying Saucer
  • Create frontend pages with ZKUI
    • Manage email templates and PDF documents containing variables.
    • Management rules for automatic approval of an application.
  • Create SQL scripts to migrate the structure and data from version 1 to version 2 of the application.
  • Create a filter to verify that the back office users have the required permission to perform certain tasks. Each controller and action can select its permission with an annotation.
Technologies: , , , , , , , , , ,

As part of my work at CGI, I participated in the creation of a web application to allow graduate students to apply for master or doctorate.

Version 0 is a rapid development to cover some parts of the process:

  • Allow people to support the candidacy of an applicant by uploading a file.
  • Enable internal reviewers to McGill as external reviewers to search and visualize the applications according to their permissions.
  • Allow McGill coordinators to manage permissions.

Responsibilities:

  • Manage and follow tasks for the team.
  • Create files for the installation of the database, configuration and deployment of the package.
  • Deploy the application to the test environment.
  • Guide and answer questions from testers.

Specifics:

  • Grails Application.
  • Secure access to the application using Spring security (local database and LDAP for internal reviewers).
  • Implement a system that locks people trying to connect several times with an invalid password. They are blocked for one hour.
  • Encrypt all passwords in the configuration file.
  • Manage the external reviewers (create, assign applications to look at, change their password).
  • Communicate with a SOAP web service to save uploaded documents to Documentum.
  • Daily jobs to notify and remind referees by e-mail for applications that the system waits for their response.
  • The internal and external reviewers can search and view the applications assigned to them by departments and applications list.

The web site (needs an account)

Technologies: , , , , , , , , , , , , ,