bcgov / sbc-qsystem

QSystem queue management system experiment.
GNU General Public License v3.0
15 stars 27 forks source link

Service BC Queuing System - Software Developer #174

Closed ccoldwell closed 6 years ago

ccoldwell commented 7 years ago

Value: $27,500.00Closes: 23:00 PST, Friday, October 6, 2017Location: Victoria In-person work NOT required

Opportunity Description

Background

We have been experimenting with an open-source queue management system (QSystem) with the hope of adapting it for the Service BC offices across the province of British Columbia. So far, we’ve made some enhancments and piloted the system in three offices with some good results. Our end goal is to continue adapting the product and our infrastructure so that we can successfully roll it out to all 62 offices and sustain it! Our modified code can be found here.

First, we need to change the underlying architecture of the application so that it can support a multi-tenant model and decrease pressure on Government server infrastructure. Once we’ve been able to do this, there are two additional phases of work we’d like to accomplish in order to improve the performance as well as code quality and security aspects so that the application can be made available to all Service BC centers.

 

Opportunity

This opportunity is to act as our software developer through these three phases of work, working in concert with the successful applicant we assign to work as the technical lead (see this opportunity).

 

The fixed-price reward is for a potential total of $27,500* for satisfaction of the Acceptance Criteria below, per this payment schedule:

* The full amount is dependent on an evaluation of outputs at the end of Phase 1, during which Service BC will determine whether or not work will continue into phases 2 and 3.

 

Acceptance Criteria

Phase 1 - Modifications to support a multi-tenant model

To be paid the fixed price of $7,500 for this phase of the opportunity, you will need to meet all of the following criteria:

 

  1. Work with the product team to create the phase 1 backlog.

  2. Deliver modifications to the code available at https://github.com/bcgov/sbc-qsystem to support a multi-tenant model.  This includes:

    1. Modifying the back end server (“QSystem”) to support multiple offices with a single server instance, using an office session parameter,

    2. Modifying the “QUser” client to work with the adjusted back end server (“QSystem”),

    3. Modifying the “QSmartboard” digital signage application to work with the adjusted back end server (“QSystem”).

  3. Deliver other changes as directed to align the software with the Red Hat OpenShift Guidelines for Creating Images .

  4. Ensure that code quality, as measured in SonarQube, will not decline during the course of the project, and every attempt will be made to increase the quality of the code. If more than 30% of a code file is changed in order to accomplish the goal of supporting a multi-tenant model, then the entire file must be refactored to resolve existing code quality issues.

  5. Transfer knowledge of the above to Service BC technical staff.

Phase 2 - Pre-release load testing and performance improvements

To be paid the fixed price of $10,000 for this phase of the opportunity, you will need to meet all of the following criteria:

 

  1. Work with the product team to create the phase 2 backlog.

  2. Create automated load test scripts.

  3. Prepare an environment to be used for performance and load testing.

  4. Assist in measurement of the load limit of the software:

    1. CPU consumption,

    2. RAM consumption,

    3. Storage consumption,

    4. Functionality of the application – is the back end service responsive.

  5. Work with the Technical Solution Architect to plan and implement work necessary to increase the load limit, with a target of 350 concurrent human users of the back end server (through the use of client applications, which may include the component “QUser” or other clients), and at least 62 concurrent users of the QSmartboard digital signage application.

  6. Code quality, as measured in SonarQube, will not decline during the course of this phase, and every attempt will be made to increase the quality of the code.

    1. If more than 30% of a particular code file is changed in order to accomplish the goal of increasing performance, then the entire file must be refactored to resolve existing code quality issues.

Phase 3 - Final pre-release tasks including further quality controls and Improvements in security.

To be paid the fixed price of $10,000 for this phase of the opportunity, you will need to meet all of the following criteria:

 

  1. Work with the product team to create the phase 3 backlog.

  2. Work with the ministry security team to determine specific changes necessary prior to launch.

  3. Work with the stakeholder group to determine list of critical items necessary for release.

  4. Determine code and release management processes.

  5. Define and create continuous release pipeline.

  6. Create necessary technical documentation and transfer knowledge to Government staff.

How to Apply

Go to the Opportunity Page, click the Apply button above and submit your proposal by 16:00 PST on 23:00 PST, Friday, October 6, 2017.

We plan to assign this opportunity by Wednesday, October 11, 2017 with work to start on Thursday, October 12, 2017.

If your proposal is accepted and you are assigned to the opportunity, you will be notified by email and asked to confirm your agreement to the Code With Us terms and contract.

Proposal Evaluation Criteria

 

  1. Your prior experience with converting applications from single-tenant to multi-tenant, and releasing production applications, especially for the BC Government. (30 points).

  2. Your expertise in Java and experience contributing Java code to public code repositories (10 points).

  3. Your knowledge of OpenShift, Docker, and/or other container based systems (10 points).

  4. Your ability to satisfy the Acceptance Criteria  on or before [31 January, 2018] (10 points).

gil0109 commented 7 years ago

Hi folks, I am the lead opportunity contact for this issue. Please post any questions you have here and we'll do our best to respond promptly.

gil0109 commented 7 years ago

Some questions and responses from anonymous from today at 3:30pm:

Question: "Does one has to bid for all the three phases? together?" Answer: preference is given to someone who will be available to make changes to all three but no

Question: "Right now we are supporting multiple offices right?" Answer: We have different pods for each office. The modification is to add the ability to run all the offices from one java qsystem.jar service.

Question: "How much capacity you are thinking of giving to that pod then?" Answer: We will evaluate based on the developer solution outcome. But there is performance programming done in phase 2.

Question: "do you want 1 single URL for all office nd giver a dropdown to choose which office they belong? is that in URL? Answer: This is up to the developer to build based on the advice from the technical lead.

Question: "ok same pods but different databases ?" Answer: Yes unless the developer suggests an alternative solution. I am hoping for one service for database, one service for qsystem jar, one service for nginx. And each of those services can scale by increasing the number of pods.

Question: "what’s the difference from one office to another? general Idea?" Answer: "different services, different users, different smartboard views"

ldstork commented 7 years ago

How do you tell if your proposal saved? I copied in the text for my proposal, click save and the button changed colour to a dark blue, but when I click on close it says that the proposal has unsaved changes.

MeaghanRStewart commented 7 years ago

Hello @ldstork , my name is Meaghan, I am with the BC DevExchange team. Sometimes this happens when a required field has not been completed. Have a scan through your proposal and see if you have completed all the required fields. If this still does not fix the problem, respond back and we can dig deeper. Thanks!

ldstork commented 7 years ago

Hi Meagan, So I determined some of the issue to be browser related. I had originally tried to submit my proposal using IE. Under IE, the DELETE and SUBMIT buttons and the note at the top of the screen indicating my proposal is in draft and Attachment tab weren't visible. I'm now using Chrome and while the screen keeps popping up messages in the bottom right hand corner saying server not available, I'm able to save updates to my Proponent information and load my attachments, but I'm unable to save anything in the Proposal field. Is there a character limit to the field?

Thanks for any help you can provide.

Lynnette

From: MeaghanRStewart [mailto:notifications@github.com] Sent: October-05-17 3:54 PM To: bcgov/sbc-qsystem Cc: ldstork; Mention Subject: Re: [bcgov/sbc-qsystem] Service BC Queuing System - Software Developer (#174)

Hello @ldstorkhttps://github.com/ldstork , my name is Meaghan, I am with the BC DevExchange team. Sometimes this happens when a required field has not been completed. Have a scan through your proposal and see if you have completed all the required fields. If this still does not fix the problem, respond back and we can dig deeper. Thanks!

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/bcgov/sbc-qsystem/issues/174#issuecomment-334614131, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AdlckoRDbvBAFn4WYe63Z75-rOhK8zAJks5spV4DgaJpZM4PjeI1.

ldstork commented 7 years ago

Hi Meagan, Logged out and closed and re-opened the browser. Went back in, initially got a server not available error when I tried to access the opportunities, but refreshed and the screen seemed to work fine. I entered text into the proposal field again and this time to get it to save...Yay!!!

Thanks Lynnette

From: Lynnette Stork [mailto:ldstork@outlook.com] Sent: October-05-17 4:35 PM To: 'bcgov/sbc-qsystem'; 'bcgov/sbc-qsystem' Cc: 'Mention' Subject: RE: [bcgov/sbc-qsystem] Service BC Queuing System - Software Developer (#174)

Hi Meagan, So I determined some of the issue to be browser related. I had originally tried to submit my proposal using IE. Under IE, the DELETE and SUBMIT buttons and the note at the top of the screen indicating my proposal is in draft and Attachment tab weren't visible. I'm now using Chrome and while the screen keeps popping up messages in the bottom right hand corner saying server not available, I'm able to save updates to my Proponent information and load my attachments, but I'm unable to save anything in the Proposal field. Is there a character limit to the field?

Thanks for any help you can provide.

Lynnette

From: MeaghanRStewart [mailto:notifications@github.com] Sent: October-05-17 3:54 PM To: bcgov/sbc-qsystem Cc: ldstork; Mention Subject: Re: [bcgov/sbc-qsystem] Service BC Queuing System - Software Developer (#174)

Hello @ldstorkhttps://github.com/ldstork , my name is Meaghan, I am with the BC DevExchange team. Sometimes this happens when a required field has not been completed. Have a scan through your proposal and see if you have completed all the required fields. If this still does not fix the problem, respond back and we can dig deeper. Thanks!

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/bcgov/sbc-qsystem/issues/174#issuecomment-334614131, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AdlckoRDbvBAFn4WYe63Z75-rOhK8zAJks5spV4DgaJpZM4PjeI1.

lmullane commented 7 years ago

Great to hear, Lynnette. Let us know if any other questions arise.

gil0109 commented 7 years ago

There seems to have been some minor workflow issues with the proposal submission process and an issue has been created to correct this problem. Consequently 2 of the proponents missed a step that would have completed their submission process. I will be requesting that these proponents provide me with that information by the end of day tomorrow. If any other proponents would like to add to their submissions please do so by emailing me by the end of the day tomorrow (4pm PST)

ccoldwell commented 7 years ago

This opportunity has been assigned

gil0109 commented 6 years ago

The final portion of handling the issue of no interruption of CSR Service during pod evacuation not completed as such we are not proceeding with Phase 3 at this time.