Attachement 1 - Statement Of Work.pdf
PDF 224 KB Posted
- Attached to
- NIST CNST IT Support Services - Software Development and Maintenance Federal contract opportunity
- Solicitation number
- 1333ND21QNB680368
About this file
This Statement of Work describes software development and maintenance services required by the National Institute of Standards and Technology's Center for Nanoscale Science and Technology. The contractor will provide ongoing support and enhancements to several in-house applications including NEMO, SPM, NT, and related systems. Key responsibilities include bug fixes, new features, database integration, and server administration. The contractor must also manage project plans, conduct code reviews, and produce statistical reports from application data. The base period of performance is one year with four optional one-year extensions. The acquisition is set aside for woman-owned small businesses. The solicitation seeks offers for onsite, remote, or blended delivery of these IT services to support NIST research facilities.
View the file
Other files for this federal contract opportunity
| File | Type | Posted |
|---|---|---|
| Amendment 1 - Solicitation Q and A.pdf | ||
| Attachment 2 - Addendum to Instructions.pdf | ||
| Attachment 3 - Addendum to Evaluation Criteria.pdf | ||
| NIST RFQ 1333ND21QNB680368 - CNST IT Services.pdf |
On GovTribe
Work with this file on GovTribe
- Download the original file
- Contacts named in this file
- Similar government files
- Ask GovTribe AI about this file
Text version
NIST RFQ 1333ND21QNB680368 - ATTACHMENT 1 – STATEMENT OF WORK
The National Institute of Standards and Technology (NIST) has a requirement for IT Services for NIST Center for Nanoscale Science and Technology (CNST) NanoFab located at the Gaithersburg, Maryland campus. The CNST relies on several in-house developed software applications to track projects, record lab usage, and produce billing. The software runs on a variety of servers to provide access internal to NIST and external to the public. The CNST seeks a vendor that can provide support to make needed updates to the software applications and maintain the server infrastructure to ensure up-to-date and continuous availability.
System Glossary:
- NEMO: NEMO is a laboratory logistics web application that strives to be intuitive and easy to use, making life easier in the lab. NEMO manages tool reservations, controls access to tools, and streamlines logistics and communication. Users can customize NEMO for their own laboratory, enabling any customer with a network connected desktop or mobile device to reserve tools, view the operating status of instruments, and seek assistance from laboratory staff. NEMO was developed at NIST. The code is open source and free so that other labs can benefit. NEMO is written using Python, HTML, CSS, and JS. The NEMO framework utilizes Django and the Gunicorn server. The NEMO database is integrated into a Virtual Database that combines data from the NanoFab Billing System (NBS) and the System for Project Management (SPM). NEMO is also integrated with the NanoFab equipment interlock servers. The NIST NEMO system is accessed internally and externally by the public.
- System for Project Management (SPM): SPM is used by the NanoFab and several divisions within the Physical Measurement Laboratory (PML). The NanoFab utilizes SPM to keep track of projects. Furthermore, a variety information including project information such as publications, principal investigator, co-principal investigator, users, research participants, routing processes, achievements, project technical descriptions, project budgets, renewal dates, research areas, and project documents (project applications, feasibility forms, reports, user profiles, feedback forms, facility user agreements, publication forms, research participant forms, approval letters, and campus security documents), are stored within SPM. The automated system informs users and PI’s of project and access renewals. SPM is also used to create a variety of reports from the internal database information. SPM was developed at NIST and its code utilizes Java, Kotlin, JSP, HTML, CSS, JS, and SQL.
Furthermore, it utilizes the following technologies: Maven, Spring, Eclipselink, Activiti Workflow (bpmn), Birt reports, and Jetty Server. SPM is integrated with the Zotero publication database and the CNST NanoFab Billing System (NBS). The SPM system is accessed internally by NIST staff.
- Nanolithography Toolbox (NT): The Nanolithography Toolbox is a platform-independent software package for scripted lithography pattern layout generation. NT was developed at NIST using Java to help users of the NanoFab design nanoscale devices with complex curves and aggressive critical dimensions. Using parameterized shapes as building blocks, the NT allows users to rapidly design and layout nanoscale devices of arbitrary complexity through scripting and programming. The NT is applicable to a broad range of design tasks in the fabrication of microscale and nanoscale devices. The graphical aspect of the NT was implemented using JavaFX. NT is used by NIST researchers and the public. The packaged NT jar file was publicly released through NIST.
- NanoFab Billing System (NBS) REST API was developed at NIST using Python. This is a read-only access point for NBS data through http requests.
- Docker Control Center (DCC) was developed internally at NIST using Python. DCC uses Django, Docker, and Docker-Compose technologies. This is open source and distributed publicly by the NanoFab.
- Virtual Database (VDB) was developed at NIST using XLM, SQL and Java. VDB utilizes the Teiid 9.x, Jboss technologies. The VDB integrates the SPM API, NEMO API, and the NBS API.
- Jasper Reports (JR) were developed at NIST using Java. JR uses Jasper Reports 7.x and Jasper Studio technologies. JR is used on the Virtual Database to obtain data from all three NanoFab systems (NEMO, NBS and SPM) to create custom metric reports.
- Identity Service (IS) was developed at NIST using Python. IS uses Flask and LDAP technologies and is integrated with the NIST and the CNST NanoFab LDAP servers.
- Nitrogen Sensor Acquisition System (NSAS) was developed at NIST using Python. The system monitors and records the nitrogen usage from the NanoFab and creates Splunk reports.
- Servers: The NanoFab has a variety of Windows and Linux servers.
o Two CentOS7 based production and test severs that host Nginx, NEMO, SPM, NBS
API, NanoFab Virtual Database, and Jasper. These servers also host the NIST Identity Service and the Nitrogen sensor acquisition system that continuously reads and records the amount of nitrogen that is used within the NanoFab facility.
o CentOS7 based Dev server that hosts JIRA, Confluence, and SonarQube static code analysis development applications. The Dev server has a PostgreSQL database for the JIRA and Confluence applications. Also, this server is used as a testbed for new applications. This is a server that is used to build and package all of the NanoFab applications into Docker containers and stores them on Gitlab.
o CentOS7 based public facing server that utilizes Nginx to host NEMO to external public users.
o CentOS7 based server that is continuously monitoring all of our servers and applications through Splunk. This system has Splunk and Nginx. The system also has an sftp application that’s installed on the server is used to store media files from the public facing and production NEMO applications. This allows us to have an identical NEMO appearance for the public and internal-NIST users.
o CentOS7 based utility server that is used to check all certificates.
Scope of Work:
Tasks:
CLIN 0001 – Base year system maintenance
CNST NanoFab Software Application Systems: NEMO, SPM, NT, NBS REST API, DCC, VDB, JR, IS, NSAS
Contractor shall maintain the CNST NanoFab software application systems. This includes writing code to fix bugs (bugs are coding errors in a computer program) encountered by the NIST end users. Unit test code shall be implemented to fully test the additional new code that was used to fix the bug. Prior deployment, these fixes shall be documented, tested, and analyzed using the SonarQube infrastructure. When deployed, the applications shall be packaged using out existing Docker container infrastructure.
CNST NanoFab Server Administration: CentOS7-based production, test, Dev, public facing, continuous monitoring and utility servers
The contractor shall provide maintenance for the CNST NanoFab servers. This includes applying critical operating system (OS) updates and implementing NIST security certificates and patches.
CNST NanoFab GitLab and open-source GitHub administration:
The contractor shall provide maintenance for the CNST application packages residing on GitLab and GitHub. The contractor shall act as a CNST GitHub and GitLab manager. The contractor shall ensure that release version code and release documentation notes are in place prior deployment. The contractor shall update the GitHub and GitLab documentation wiki when code changes are made. The contractor shall save the developed source code and script deliverables using the version control system provided by the government. The deliverables shall include all project files, configuration files used by Integrated Development Environments (IDEs), and files used for the compilation and testing of the software products. Checking code into GitLab and GitHub and deploying the deliverables to a production environment constitutes “delivery”. The contractor shall monitor the community response from the NEMO google group.
CNST NanoFab Data Calls:
The contractor shall provide CNST statistical information regarding the operations of the NanoFab derived from the application databases. This task requires grouping, aggregation, counts, sums, case selects and cross database SQL queries. The contractor shall provide the data-call SQL scripts and code to CNST NanoFab management.
Project Management:
The contractor shall plan and manage required activities. The contractor shall develop and maintain a Project Plan using the NIST provided project management software, JIRA. The contractor shall participate in regular progress review meetings, every two to three weeks, with CNST NanoFab management and select staff. The meeting shall include the status of on-going tasks. It shall also be the forum to discuss outstanding or anticipated issues or problems. Any discrepancies of non-performance shall be discussed at each meeting and the contractor shall provide proposed corrective action measures.
The contractor shall adhere to the Project Plan developed by the contractor and revised or updated by the team (the Contractor, Government, and other participants as designated on the Plan). The Plan shall include deliverables, milestones, outputs, staffing, and status reporting. The contractor and CNST NanoFab management shall review the updated status of the Project Plan at the scheduled progress meeting. The contractor shall update the Project Plan when there are changes or as required by the CNST management in accordance with the backlog and prioritized tasks.
The contractor shall be responsible for overall project management, including the development and monitoring/updating and submission of the Project Plan, task work plans, detailing specific deliverables, monitoring quality of deliverables, final reports, source code, and documentation.
The contractor must adhere to NIST and DoC IT Security Policies while performing all Requirements of this Statement of Work (SOW). Additionally, any software developed must meet minimum mandatory controls as specified for Moderate Impact (Confidentiality and Integrity) systems as specified in NIST Special Publication 800-53, DoC IT Security Program Policy and Minimum Implementation Standards (2005), and NIST policy. The contractor shall maintain a frequent dialog with the IT Security Officer concerning the appropriate level of security.
CLIN 0002 – Base year application development
CNST NanoFab NEMO Application:
NEMO shall have 12 releases that include development tasks and code maintenance tasks.
a) The contractor shall develop an inventory system within NEMO. The inventory system shall keep track of laboratory supplies that are utilized for the operation of the NanoFab. The inventory system shall read-in barcode-scanned inventory data and automatically update current inventory levels. The inventory system shall have a user defined restocking criteria for each inventory item that defines when supplies are reordered. The system shall allow the end user to display all the orders, indicating dates when the supplies were last ordered, and allow the end user to modify the individual orders. When the order is finalized, the system shall automatically generate pdf-based supply order forms and email the forms to the NanoFab purchasing personnel. The contractor shall develop a database to store the supply items and vendors from which supplies are ordered. The inventory system shall keep track of the overall NanoFab inventory and inventory items individual NanoFab laboratory sections. The inventory system shall have a reporting module that provides insight into supply usage over time.
b) The contractor shall develop a NEMO module that links NanoFab supplies that staff sells to users to the inventory system described above. When a NanoFab staff member sells an item to a customer, the inventory system shall be automatically updated to reflect the current stock amount.
c) Under the NEMO tool control summary, the contractor shall develop a section where equipment information is displayed. The information content shall consist of formatted html-based text, images, and linked documents.
d) Within NEMO’s “View your billing” module, the contractor shall develop usage section so that each individual transaction shows the total usage time and the total cost. This requires querying and parsing the NBS information form the virtual database. The contractor shall develop an export module that allows for end-users to export comma separated parsed data.
e) The contractor shall develop a bulletin board within NEMO. The bulletin board shall allow discussion within the NanoFab NEMO user community by posting and replying to processing questions and comments.
CNST NanoFab Nanolithography Toolbox Application:
The Nanolithography Toolbox shall have 8 releases that include development tasks and code maintenance tasks. The contractor shall create a programming method within the Scripting class for each new scripting constructor that’s created in the below task list. For each new Nanolithography Toolbox release, the contractor shall update the documentation manual.
Furthermore, the contractor shall ensure that each Nanolithography Toolbox release is compatible with Windows, Mac, and Linux operating systems.
a) The contractor shall migrate Nanolithography Toolbox from the current Java 8 version to the latest stable release of Java and JavaFX.
b) The contractor shall create Atom editor scripts to enable autocompletion of the parameters within the Nanolithography Toolbox scripting constructor. The user will tab through parameter values and at the last value, the script line will be terminated with a carriage return and line feed. The contractor shall create a parser that automatically creates the Atom editor autocompletion templates for each new Nanolithography Toolbox scripting constructor.
c) The contractor shall create an Atom shell command that will run the Nanolithography Toolbox scripting functions within the editor. This will eliminate the need to open the Nanolithography Toolbox to run scripting files.
d) The contractor shall create a library of Matlab functions that will be used to create the Nanolithography Toolbox scripting constructors. This will allow users to implement and execute the Nanolithography Toolbox scripting functions within Matlab, without the need of opening the Nanolithography Toolbox. NIST will provide access to Matlab. The contractor shall create a parser that automatically creates a Matlab function for each newly added Nanolithography Toolbox scripting constructor.
e) The contractor shall create a library of Python functions that will be used to create the Nanolithography Toolbox scripting constructors. This will allow users to implement and execute the Nanolithography Toolbox scripting functions within the Python environment, without the need of opening the Nanolithography Toolbox. The contractor shall create a parser that automatically creates a Python function for each newly added Nanolithography Toolbox scripting constructor.
CNST NanoFab SPM Application:
SPM shall have 8 releases that include development tasks and code maintenance tasks.
a) The contractor shall revise current reports in SPM to allow for separation between the NIST Physical Measurement divisions that are utilizing SPM.
b) The contractor shall automate the process of creating new users within SPM from the online and PDF versions of the NanoFab new user application. The NanoFab user office would import the data with a click of the button to automatically populate user data information within SPM.
c) The contractor shall add the ability to upload output forms directly in SPM. SPM shall parse the forms and create journal publications, presentations, patents, and awards fields accordingly. This data shall be stored into the SPM database. The contractor shall create a custom reporting function where the end user can create publication output reports based on the institution type (government, academia, and industry). The contractor shall allow the end-user to search for key words within the output publication and export the parsed data. The end user shall have options to export plain text comma separated files or formatted pdf files.
d) The contractor shall read-in custom NanoFab user outputs forms into SPM. This shall bypass the need to use the shared Zotero database. This functionality shall allow the end user to input manually individual NanoFab user outputs (journal publications, presentations, patents, and awards) and allow for a bulk import of the NanoFab user outputs.
CLIN 0003 – Option year 1 system maintenance
CNST NanoFab Software Application Systems: NEMO, SPM, NT, NBS REST API, DCC, VDB, JR, IS, NSAS
Contractor shall maintain the CNST NanoFab software application systems. This includes writing code to fix bugs (bugs are coding errors in a computer program) encountered by the NIST end users. Unit test code shall be implemented to fully test the additional new code that was used to fix the bug. Prior deployment, these fixes shall be documented, tested, and analyzed using the SonarQube infrastructure. When deployed, the applications shall be packaged using out existing Docker container infrastructure.
CNST NanoFab Server Administration: CentOS7-based production, test, Dev, public facing, continuous monitoring and utility servers
The contractor shall provide maintenance for the CNST NanoFab servers. This includes applying critical operating system (OS) updates and implementing NIST security certificates and patches. CentOS7 will be deprecated and the contractor shall upgrade the OS of all CNST NanoFab systems to an appropriate Linux-based OS that is approved by the NIST IT security.
CNST NanoFab GitLab and open-source GitHub administration:
The contractor shall provide maintenance for the CNST application packages residing on GitLab and GitHub. The contractor shall act as a CNST GitHub and GitLab manager. The contractor shall ensure that release version code and release documentation notes are in place prior deployment. The contractor shall update the GitHub and GitLab documentation wiki when code changes are made. The contractor shall save the developed source code and script deliverables using the version control system provided by the government. The deliverables shall include all project files, configuration files used by Integrated Development Environments (IDEs), and files used for the compilation and testing of the software products. Checking code into GitLab and GitHub and deploying the deliverables to a production environment constitutes “delivery”. The contractor shall monitor the community response from the NEMO google group.
CNST NanoFab Data Calls:
The contractor shall provide CNST statistical information regarding the operations of the NanoFab derived from the application databases. This task requires grouping, aggregation, counts, sums, case selects and cross database SQL queries. The contractor shall provide the data-call SQL scripts and code to CNST NanoFab management.
Project Management:
The contractor shall plan and manage required activities. The contractor shall develop and maintain a Project Plan using the NIST provided project management software, JIRA. The contractor shall participate in regular progress review meetings, every two to three weeks, with CNST NanoFab management and select staff. The meeting shall include the status of on-going tasks. It shall also be the forum to discuss outstanding or anticipated issues or problems. Any discrepancies of non-performance shall be discussed at each meeting and the contractor shall provide proposed corrective action measures.
The contractor shall adhere to the Project Plan developed by the contractor and revised or updated by the team (the Contractor, Government, and other participants as designated on the Plan). The Plan shall include deliverables, milestones, outputs, staffing, and status reporting. The contractor and CNST NanoFab management shall review the updated status of the Project Plan at the scheduled progress meeting. The contractor shall update the Project Plan when there are changes or as required by the CNST management in accordance with the backlog and prioritized tasks.
The contractor shall be responsible for overall project management, including the development and monitoring/updating and submission of the Project Plan, task work plans, detailing specific deliverables, monitoring quality of deliverables, final reports, source code, and documentation.
The contractor must adhere to NIST and DoC IT Security Policies while performing all Requirements of this Statement of Work (SOW). Additionally, any software developed must meet minimum mandatory controls as specified for Moderate Impact (Confidentiality and Integrity) systems as specified in NIST Special Publication 800-53, DoC IT Security Program Policy and Minimum Implementation Standards (2005), and
CLIN 0004 – Option year 1 application development
NEMO shall have 12 releases that include development tasks and code maintenance tasks.
a) The contractor shall develop a wiki within NEMO. The Wiki shall allow for NanoFab facility staff to post equipment processing, maintenance logs, documentation, hazard reviews, startup and shutdown equipment instructions, emergency power-off and emergency response plan, and safety information to the NanoFab end-users. The wiki shall have a database of the NanoFab facility material data safety sheets. The wiki shall allow end-users to search.
b) The contractor shall develop a NEMO methodology that links NanoFab projects to specific pieces of NanoFab equipment. This will allow for coupling NIST mission critical projects to specific NanoFab equipment.
c) The contractor shall develop a NEMO module that tracks usage and automatically schedules preventive maintenance (PM) for NanoFab equipment. The system shall allow the end user to set a usage criterion based on the amount of equipment processing time and set usage thresholds that automatically send emails to maintenance staff. The usage thresholds shall allow the end user two of the following options: define usage threshold by the amount of time or define usage threshold by the percentage of the end-user-defined maximum value. Various threshold levels shall be allowed to be defined by the end user.
d) The contractor shall add a NEMO reporting module under the Administration pull-down option menu. The reporting shall allow NanoFab superusers to select a range of equipment dates. The system shall parse the equipment usage data and allow end-users to export comma delimited parsed data. The module shall allow end-users to parse data by years, months, users, equipment, account, and projects.
e) The contractor shall implement a NEMO function that allows NEMO to send text messages when alerts and outages are created.
CNST NanoFab Nanolithography Toolbox Application:
The Nanolithography Toolbox shall have 8 releases that include development tasks and code maintenance tasks. The contractor shall create a programming method within the Scripting class for each new scripting constructor that’s created in the below task list. For each new Nanolithography Toolbox release, the contractor shall update the documentation manual.
Furthermore, the contractor shall ensure that each Nanolithography Toolbox release is compatible with Windows, Mac, and Linux operating systems.
a) The Nanolithography Toolbox has nearly 1000 parametric elements that are used to create complex, aggressively nanoscaled device architectures. The Nanolithography Toolbox does not have unit testing built in for each element. The contractor shall create a unit testing functionality that tests each of the parametric elements. The contractor shall further create unit tests for each new parametric element that is created within this contract.
b) The contractor shall create a parser for each of the Nanolithography Toolbox scripting constructors that outputs an input file for the Blender open source 3D creation suite.
The user would define Nanolithography Toolbox scripting constructors and in addition define an extrusion for each constructor. The Nanolithography Toolbox parser shall export an appropriate Blender input format file. The contractor shall update the Blender parser to automatically creates shapes from each newly added Nanolithography Toolbox scripting constructor.
c) The contractor shall create a parser for each of the Nanolithography Toolbox scripting constructors that outputs an input file for the COMSOL simulation suite. The user would define Nanolithography Toolbox scripting constructors and in addition define an extrusion for each constructor. The Nanolithography Toolbox parser shall export an appropriate COMSOL input format file. NIST will provide access to COMSOL. The contractor shall update the COMSOL parser that automatically creates shapes from each newly added Nanolithography Toolbox scripting constructor.
d) The contractor shall develop a Nanolithography Toolbox scripting constructor that creates fill area shapes for chemical mechanical polishing applications. The use will define the size and shape of the object and the custom algorithm will fill a user defined shape. This will enable uniform chemical mechanical polishing of aggressively nanoscaled structures.
CNST NanoFab SPM Application:
SPM shall have 8 releases that include development tasks and code maintenance tasks.
a) The contractor shall create an automatic customizable sequence for NanoFab project numbers. Upon creating either a new or renewal of a project, a unique project number shall be automatically set.
b) The contractor shall have SPM automatically fill a provided NanoFab User Feasibility Review form with project information and email it to the NanoFab manager for review.
c) The contractor shall add a confirmation dialog when creating or renewing projects.
d) The contractor shall create new project application parsers for the internal and PDF project applications to accommodate automatically new fields within the form. The end user shall utilize the appropriate naming convention for new fields that will allow the parser to analyze and process the data.
CLIN 0005 – Option year 2 system maintenance
CNST NanoFab Software Application Systems: NEMO, SPM, NT, NBS REST API, DCC, VDB, JR, IS, NSAS
Contractor shall maintain the CNST NanoFab software application systems. This includes writing code to fix bugs (bugs are coding errors in a computer program) encountered by the NIST end users. Unit test code shall be implemented to fully test the additional new code that was used to fix the bug. Prior deployment, these fixes shall be documented, tested, and analyzed using the SonarQube infrastructure. When deployed, the applications shall be packaged using out existing Docker container infrastructure.
CNST NanoFab Server Administration: Linux-based production, test, Dev, public facing, continuous monitoring and utility servers
The contractor shall provide maintenance for the CNST NanoFab servers. This includes applying critical operating system (OS) updates and implementing NIST security certificates and patches.
CNST NanoFab GitLab and open-source GitHub administration:
The contractor shall provide maintenance for the CNST application packages residing on GitLab and GitHub. The contractor shall act as a CNST GitHub and GitLab manager. The contractor shall ensure that release version code and release documentation notes are in place prior deployment. The contractor shall update the GitHub and GitLab documentation wiki when code changes are made. The contractor shall save the developed source code and script deliverables using the version control system provided by the government. The deliverables shall include all project files, configuration files used by Integrated Development Environments (IDEs), and files used for the compilation and testing of the software products. Checking code into GitLab and GitHub and deploying the deliverables to a production environment constitutes “delivery”. The contractor shall monitor the community response from the NEMO google group.
CNST NanoFab Data Calls:
The contractor shall provide CNST statistical information regarding the operations of the NanoFab derived from the application databases. This task requires grouping, aggregation, counts, sums, case selects and cross database SQL queries. The contractor shall provide the data-call SQL scripts and code to CNST NanoFab management.
Project Management:
The contractor shall plan and manage required activities. The contractor shall develop and maintain a Project Plan using the NIST provided project management software, JIRA. The contractor shall participate in regular progress review meetings, every two to three weeks, with CNST NanoFab management and select staff. The meeting shall include the status of on-going tasks. It shall also be the forum to discuss outstanding or anticipated issues or problems. Any discrepancies of non-performance shall be discussed at each meeting and the contractor shall provide proposed corrective action measures.
The contractor shall adhere to the Project Plan developed by the contractor and revised or updated by the team (the Contractor, Government, and other participants as designated on the Plan). The Plan shall include deliverables, milestones, outputs, staffing, and status reporting. The contractor and CNST NanoFab management shall review the updated status of the Project Plan at the scheduled progress meeting. The contractor shall update the Project Plan when there are changes or as required by the CNST management in accordance with the backlog and prioritized tasks.
The contractor shall be responsible for overall project management, including the development and monitoring/updating and submission of the Project Plan, task work plans, detailing specific deliverables, monitoring quality of deliverables, final reports, source code, and documentation.
The contractor must adhere to NIST and DoC IT Security Policies while performing all Requirements of this Statement of Work (SOW). Additionally, any software developed must meet minimum mandatory controls as specified for Moderate Impact (Confidentiality and Integrity) systems as specified in NIST Special Publication 800-53, DoC IT Security Program Policy and Minimum Implementation Standards (2005), and
CLIN 0006 – Option year 2 application development
NEMO shall have 12 releases that include development tasks and code maintenance tasks.
a) The contractor shall implement a NEMO function that allows NanoFab facility users to request out-of-hour and weekend access directly within NEMO. Once the request is made, NEMO shall automatically email the NanoFab management and user office. Upon approval through NEMO, the access is automatically provided. This action shall trigger an automated email to the use indicating that access is approved and to NIST identifying that the NanoFab will have users during out-of-hour and weekend access. The module shall allow users to add unlimited email addresses and implement custom email messages.
b) Currently NEMO has 40 features that do not have unit tests. The contractor shall create unit tests for each of these NEMO functions.
c) The contractor shall develop a means for NEMO to export data from the equipment task and comment history. The end user shall have options to export plain text files or formatted pdf files.
d) The contractor shall develop a NEMO functionality that allows NanoFab staff to export equipment usage data within a specified date range. The end user shall have options to export plain text comma separated files or formatted pdf files.
e) The contractor shall implement a graphical representation of process control equipment data. For example, weekly process characterization data would be entered into the database by NanoFab staff. The information would then be graphically displayed for the
NanoFab user community. The end user shall have options to export plain text comma separated files.
CNST NanoFab Nanolithography Toolbox Application:
The Nanolithography Toolbox shall have 8 releases that include development tasks and code maintenance tasks. The contractor shall create a programming method within the Scripting class for each new scripting constructor that’s created in the below task list. For each new Nanolithography Toolbox release, the contractor shall update the documentation manual.
Furthermore, the contractor shall ensure that each Nanolithography Toolbox release is compatible with Windows, Mac, and Linux operating systems.
a) The contractor shall develop Nanolithography Toolbox functionality that allows reading-in and parsing multiple GDS files. Once the files are read-in, the end-user shall have the ability to add additional Nanolithography Toolbox shapes defined by the scripting constructors, and then re-export the modified GDS file. The contractor shall create the functionality to export the contents of the parsed shapes that are created with the Nanolithography Toolbox scripting constructors. The end user shall have options to export plain text files.
b) The contractor shall package a stand-alone version of the Nanolithography Toolbox with Java and JavaFX. In this case, the Nanolithography Toolbox will run from the packaged Java framework without the need of relying on the installed Java version.
c) The contractor shall develop algorithms that distribute pixels uniformly around the periphery of the shape and internally within the shape. The pixels shall be converted into zero width internal GDS defined points of a particular radius that is defined by the electron beam lithography writing pitch. The process shall first pixelate the boundary, then, the algorithm will symmetrically shrink the boundary by the user-defined pixel size until the boundary shape is less than the pixel size. The methodology shall be implemented for shapes with vertices and vectorized shapes defined by higher order polynomials.
CNST NanoFab SPM Application:
SPM shall have 8 releases that include development tasks and code maintenance tasks.
a) The contractor shall add SPM functionality that automatically email Facility Use Agreement that is about to expire to the principal investigator. The first reminder email shall be sent 2-months and the second email shall be sent 1-month prior project expiration.
b) The contractor shall update SPM emails to use static hyperlinks to the NanoFab user forms. The static link implementation shall guarantee that the latest versions of the NanoFab forms are used by the current and potential NanoFab user community.
c) The contractor shall add a shortcut link to the project report on the general information page of that project. This will allow the end user to directly generate reports from NanoFab user projects.
d) The contractor shall implement SPM functionality to allow documents to be uploaded to a NanoFab users information page. This would allow user-related forms like their signed yearly campus access security form to be linked to the user. The forms shall be stored into the SPM database. SPM shall accommodate file types from any application.
e) The contractor shall implement a document drag-and-drop functionality for all document uploading. This includes document uploading of project applications, project documents, and user outputs.
CLIN 0007 – Option year 3 system maintenance
NSAS
Contractor shall maintain the CNST NanoFab software application systems. This includes writing code to fix bugs (bugs are coding errors in a computer program) encountered by the NIST end users. Unit test code shall be implemented to fully test the additional new code that was used to fix the bug. Prior deployment, these fixes shall be documented, tested, and analyzed using the SonarQube infrastructure. When deployed, the applications shall be packaged using out existing Docker container infrastructure.
CNST NanoFab Server Administration: Linux-based production, test, Dev, public facing, continuous monitoring and utility servers
The contractor shall provide maintenance for the CNST NanoFab servers. This includes applying critical operating system (OS) updates and implementing NIST security certificates and patches.
CNST NanoFab GitLab and open-source GitHub administration:
The contractor shall provide maintenance for the CNST application packages residing on GitLab and GitHub. The contractor shall act as a CNST GitHub and GitLab manager. The contractor shall ensure that release version code and release documentation notes are in place prior deployment. The contractor shall update the GitHub and GitLab documentation wiki when code changes are made. The contractor shall save the developed source code and script deliverables using the version control system provided by the government. The deliverables shall include all project files, configuration files used by Integrated Development Environments (IDEs), and files used for the compilation and testing of the software products. Checking code into GitLab and GitHub and deploying the deliverables to a production environment constitutes
“delivery”. The contractor shall monitor the community response from the NEMO google group.
CNST NanoFab Data Calls:
The contractor shall provide CNST statistical information regarding the operations of the NanoFab derived from the application databases. This task requires grouping, aggregation, counts, sums, case selects and cross database SQL queries. The contractor shall provide the data-call SQL scripts and code to CNST NanoFab management.
Project Management:
The contractor shall plan and manage required activities. The contractor shall develop and maintain a Project Plan using the NIST provided project management software, JIRA. The contractor shall participate in regular progress review meetings, every two to three weeks, with CNST NanoFab management and select staff. The meeting shall include the status of on-going tasks. It shall also be the forum to discuss outstanding or anticipated issues or problems. Any discrepancies of non-performance shall be discussed at each meeting and the contractor shall provide proposed corrective action measures.
The contractor shall adhere to the Project Plan developed by the contractor and revised or updated by the team (the Contractor, Government, and other participants as designated on the Plan). The Plan shall include deliverables, milestones, outputs, staffing, and status reporting. The contractor and CNST NanoFab management shall review the updated status of the Project Plan at the scheduled progress meeting. The contractor shall update the Project Plan when there are changes or as required by the CNST management in accordance with the backlog and prioritized tasks.
The contractor shall be responsible for overall project management, including the development and monitoring/updating and submission of the Project Plan, task work plans, detailing specific deliverables, monitoring quality of deliverables, final reports, source code, and documentation.
The contractor must adhere to NIST and DoC IT Security Policies while performing all Requirements of this Statement of Work (SOW). Additionally, any software developed must meet minimum mandatory controls as specified for Moderate Impact (Confidentiality and Integrity) systems as specified in NIST Special Publication 800-53, DoC IT Security Program Policy and Minimum Implementation Standards (2005), and
CLIN 0008 – Option year 3 application development
CNST NanoFab NEMO Application:
NEMO shall have 12 releases that include development tasks and code maintenance tasks.
a) The contractor shall develop a database to store equipment data processing sheets. This would include data sheet for resists, resist spin curves, and other NanoFab equipment specific data parameters.
b) The contractor shall create a database to contain the pdf versions of NanoFab material safety data sheets. The datasheets shall be searchable.
c) The contractor shall add additional features to the existing “Buddy board”. The NanoFab facility user shall have the ability to choose range of times within specified dates and invite other NanoFab facility users to be buddies during out-of-hour access times. The invitee shall have options to accept or reject the invitations.
d) The contractor shall continually optimize the performance of NEMO by reducing the screen loading delay times to less than or equal to 1 second.
e) The contractor shall sort the NEMO status board data by the time that the facility user entered an area.
CNST NanoFab Nanolithography Toolbox Application:
The Nanolithography Toolbox shall have 8 releases that include development tasks and code maintenance tasks. The contractor shall create a programming method within the Scripting class for each new scripting constructor that’s created in the below task list. For each new Nanolithography Toolbox release, the contractor shall update the documentation manual.
Furthermore, the contractor shall ensure that each Nanolithography Toolbox release is compatible with Windows, Mac, and Linux operating systems.
a) The contractor shall create 40 constructors, defined by the NanoFab manager, that create new GDS shape elements for the nanophotonics library.
b) The contractor shall create 40 constructors, defined by the NanoFab manager, that create new GDS shape elements for the micro- and nano-electromechanical systems library.
c) The contractor shall add shape rotation to 50 Nanolithography Toolbox shape constructor object that lack rotational functionality.
d) The contractor shall develop functionality to allow for exporting of GDS shape vertices.
The user shall have the flexibility to choose the GDS layer of shapes within a GDS structure. The user shall also have the flexibility to choose between a continuous comma delimited vertex values and (x,y) vertex pairs separated by an end line defined by a carriage return and line feed. The end user shall have options to export plain text files.
CNST NanoFab SPM Application:
SPM shall have 8 releases that include development tasks and code maintenance tasks.
a) The contractor shall implement a “Project Plan” for non NanoFab projects. The project plan will contain fields to be used to store project details. Project plans shall be Physical Measurement Laboratory division specific. The contractor shall build a template-based model for the project plan. The administrators shall have the ability to customize and modify the project plan template based on the research needs of the division.
b) The contractor shall develop a reminder framework for division and NanoFab projects.
The implementation shall allow the reminders to be optional. This shall allow flexibility for the NanoFab and research divisions to enable particular reminders but not others.
c) The contractor shall release an open-source version of SPM to the public. The contractor shall also publicly release a feature manual of the SPM.
CLIN 0009 – Option year 4 system maintenance
NSAS
Contractor shall maintain the CNST NanoFab software application systems. This includes writing code to fix bugs (bugs are coding errors in a computer program) encountered by the NIST end users. Unit test code shall be implemented to fully test the additional new code that was used to fix the bug. Prior deployment, these fixes shall be documented, tested, and analyzed using the SonarQube infrastructure. When deployed, the applications shall be packaged using out existing Docker container infrastructure.
CNST NanoFab Server Administration: Linux-based production, test, Dev, public facing, continuous monitoring and utility servers
The contractor shall provide maintenance for the CNST NanoFab servers. This includes applying critical operating system (OS) updates and implementing NIST security certificates and patches.
CNST NanoFab GitLab and open-source GitHub administration:
The contractor shall provide maintenance for the CNST application packages residing on GitLab and GitHub. The contractor shall act as a CNST GitHub and GitLab manager. The contractor shall ensure that release version code and release documentation notes are in place prior deployment. The contractor shall update the GitHub and GitLab documentation wiki when code changes are made. The contractor shall save the developed source code and script deliverables using the version control system provided by the government. The deliverables shall include all project files, configuration files used by Integrated Development Environments (IDEs), and files used for the compilation and testing of the software products. Checking code into GitLab and
GitHub and deploying the deliverables to a production environment constitutes “delivery”. The contractor shall monitor the community response from the NEMO google group.
CNST NanoFab Data Calls:
The contractor shall provide CNST statistical information regarding the operations of the NanoFab derived from the application databases. This task requires grouping, aggregation, counts, sums, case selects and cross database SQL queries. The contractor shall provide the data-call SQL scripts and code to CNST NanoFab management.
Project Management:
The contractor shall plan and manage required activities. The contractor shall develop and maintain a Project Plan using the NIST provided project management software, JIRA. The contractor shall participate in regular progress review meetings, every two to three weeks, with CNST NanoFab management and select staff. The meeting shall include the status of on-going tasks. It shall also be the forum to discuss outstanding or anticipated issues or problems. Any discrepancies of non-performance shall be discussed at each meeting and the contractor shall provide proposed corrective action measures.
The contractor shall adhere to the Project Plan developed by the contractor and revised or updated by the team (the Contractor, Government, and other participants as designated on the Plan). The Plan shall include deliverables, milestones, outputs, staffing, and status reporting. The contractor and CNST NanoFab management shall review the updated status of the Project Plan at the scheduled progress meeting. The contractor shall update the Project Plan when there are changes or as required by the CNST management in accordance with the backlog and prioritized tasks.
The contractor shall be responsible for overall project management, including the development and monitoring/updating and submission of the Project Plan, task work plans, detailing specific deliverables, monitoring quality of deliverables, final reports, source code, and documentation.
The contractor must adhere to NIST and DoC IT Security Policies while performing all Requirements of this Statement of Work (SOW). Additionally, any software developed must meet minimum mandatory controls as specified for Moderate Impact (Confidentiality and Integrity) systems as specified in NIST Special Publication 800-53, DoC IT Security Program Policy and Minimum Implementation Standards (2005), and
CLIN 0010 – Option year 4 application development
CNST NanoFab NEMO Application:
NEMO shall have 12 releases that include development tasks and code maintenance tasks.
a) The contractor shall develop a NEMO feature that allows users to specify a customized tool collection of equipment that is used often. This list shall be placed in a top level ‘Favorites’ section, located above the NanoFab equipment list within the NEMO calendar and tool control.
b) The contractor shall develop a NEMO feature for users to create process modules of base NanoFab process recipes, and from these process modules, users can create process flows. For example, a facility user could: create a lithography module for spinning of a particular photoresist that includes conditions for spinning at a particular thickness, baking, exposing, and developing resist; create an etching module that defines the plasma etch processing parameters that are coupled to a distinct etch rate;
and create a deposition module that defines the process deposition parameters and a distinct material deposition rate. The facility user can then employ these modules within process flows that would be used to create complex nanoscale devices. These modules shall allow users to collect data at each processing module step. For instance, users can note exposure times, development time, etch rates and depths, deposition rates and thicknesses and other NanoFab equipment processing parameters. Users shall have the ability to export the modules and process flows. The export functionality will allow users to export plain text comma separated and formatted pdf output formats. These processes shall be stored within a database. The individual users shall have the ability to share these modules and processes in a read-only mode with other NanoFab facility users.
c) The contractor shall develop a NEMO function that allows users to display multiple pieces of equipment on the reservation calendar. The contractor shall place check boxes next to tools, and when the checkbox is activated for several tools the calendar reservation system shall show the reservation time for those tools.
d) In addition to the existing calendar view of a day, week and month, the contractor shall allow for a user specified number of days to be displayed within the calendar. The customization shall be implemented within the individualized user setting menu.
e) The contractor shall allow sorting of active and inactive projects under the “Accounts and projects” section under the “Administration” pull down menu. The contractor shall allow end-users to export plain text comma separated and formatted pdf output formats of the sorted accounts and projects data.
CNST NanoFab Nanolithography Toolbox Application:
The Nanolithography Toolbox shall have 8 releases that include development tasks and code maintenance tasks. The contractor shall create a programming method within the Scripting class for each new scripting constructor that’s created in the below task list.
This is the start of the file's text. The full file is on GovTribe.
File details come from the government source that posted it. Updated .