Software Development Agreement with CORSAC Technologies dated October 2, 2023
EXHIBIT 10.5
SOFTWARE DEVELOPMENT AGREEMENT
AGREEMENT is made as of October 2nd, 2023 between Corsac Technologies Corporation with an address at 16 Yellow Birchway, North York, ON, Canada, M2H 2T3 ("Developer"), and Nexscient, Inc. with an address at 2029 Century Park East, Suite 400, Los Angeles, CA 90067 ("Customer").
WHEREAS, the Developer provides software development, programming, graphic design and other services (together, the "Services"); and
WHEREAS, Customer wishes to get software development and related services, and wants to hire Developer to develop these custom software packages; and
WHEREAS, Developer wishes to provide the Services to Customer, all pursuant to the terms and conditions set forth herein
NOW THEREFORE, in consideration of the mutual covenants herein contained and other good and valuable consideration, receipt and sufficiency of which is hereby acknowledged, the parties agree as follows:
1. Recitals. Appendices and Definition. The recitals set forth above together with appendices to this Agreement, form an integral part of this Agreement. The following capitalized terms when used in this Agreement shall have the respective meanings indicated below:
"Complete" or "Completion," with respect to development of the Software, shall mean that Developer has certified and Customer has confirmed that development and testing of the Software have been completed and that the Software and Documentation are ready for commercial use in material conformity with the Specifications.
"Deliverables" means the items to be delivered to a Customer in connection with the Project.
"Documentation" means all user manuals, installation manuals, and other written materials that relate to the Software.
"Development Schedule" shall mean the schedule for completion of the Services and delivery to Customer of the Deliverables.
"Error" means any failure of the Software to conform in any material respect to its Specifications.
"Object Code" means computer code in machine-readable form generated by compilation of Source Code and contained in a medium that permits it to be loaded into and operated on computers or other devices.
"Project" or "Projects" means the programming and creation of the Software in accordance with the Specifications and Development Schedule, as in effect from time to time.
"Software" means the object code of the software to be developed pursuant to this.
"Source Code" means the source code for the Software, in printed, machine readable, and any other form and including all existing comments, and all test suites and technical and other documentation reasonably necessary for a reasonably skilled programmer to understand and use the source code.
"Specifications" shall mean the business, technical and other specifications for the Software and Deliverables for a given Project.
2. Engagement of Developer. Developer hereby agrees to perform all of the programming and other work necessary for provision of the Services to Customer promptly and a high level of quality following and in accordance with the Specifications and Development Schedule for each Project for the Customer.
(a) The Parties acknowledge that Developer commences performance of the Services after the date hereof and that this Agreement shall govern all Services performed by Developer in respect of a Project for the Customer.
(b) Developer shall dedicate a separate software engineer to do the development for the Project on the full-time (40h/week) basis and the Customer is responsible to provide the respective amount of work to fully load 40 hours/week with Project tasks for the software engineer. If the Project specification requires so, Developer will provide more than one software engineer or other professional or role necessary to continue the development of the project.
(c) Project Coordination. Developer shall communicate directly with Customer with respect to (i) the schedules and progress of work pursuant to this Agreement; (ii) receiving and submitting requests for information and/or assistance; (iii) receiving and submitting materials; (iv) cooperating to implement and review the development, design and production efforts; and (v) supervising the exchange of confidential information pursuant to this Agreement.
(d) The services required by this Agreement shall be performed by Developer, or Developer's Staff, or Developer's contractors.
Developer has the sole right to control and direct the means, manner and method by which the services required by this Agreement will be performed.
(e) Development of Specifications. Customer shall have primary responsibility for the definition of the Software and the development of the functional objectives to be included in the Specifications for each of their Projects. Developer shall have primary responsibility for the development of the technical means for accomplishing such functional objectives, also to be included in the Specifications. The parties shall use their best commercial efforts to prepare their respective portions of the Specifications as promptly as possible. Once the Developer has completed the Specifications it shall submit them to the Customer for final review and acceptance. Specifications will be final when approved by Customer. In the event Developer believes that any change in Specification will have more than a de minimis affect the work being performed by Developer hereunder, Developer shall promptly notify Customer of such affect, including any impact on the Development Schedule and the costs to be incurred by the parties hereunder.
2 |
(d) Milestones. Major Projects may be subject to Milestones to be agreed upon upfront between the parties. Apart from Milestone, the Services may be provided on a monthly basis and each month shall constitute a separate Milestone for payment and reporting purposes.
(e) Delays. Developer shall regularly inform Customer of factors that are likely to lead to delays such as labor shortages, technical difficulties, and other factors but Developer shall seek to minimize such delays. Any delay or nonperformance of any provision of this Agreement caused by conditions beyond the reasonable control of the performing party shall not constitute a breach of this Agreement, provided that the delayed party has taken reasonable measures to notify the other of the delay in writing. The delayed party's time for performance shall be deemed to be extended for a period equal to the duration of the conditions beyond its control.
If the Developer needs to take a definite period of time off (sick days, holidays, force majeure etc.), the Developer will take its best efforts to warn the customer in advance and this time period will not be a part of the reporting period for the purposes of payment.
(f) Delivery. The Project Coordinators for each party shall agree upon the reasonable logistics and procedures for making delivery of the Deliverables and for performing acceptance testing. Upon completion of the Software, Developer shall notify the Development Coordinator for the Customer and shall deliver the agreed upon Deliverables to the Customer for acceptance testing in accordance with such agreed upon procedures.
(g) Acceptance Testing Procedures. If specifically requested by Customer, Developer shall establish mutually agreeable reasonable acceptance testing procedures to be generally in conformity with general industry practices to be performed after delivery of the Deliverables to determine if they meet the Specifications. In the event the Deliverables are rejected, Developer shall use reasonable diligence to correct any deficiencies cited in good faith by the Customer and to resolve any Customer concerns over the Deliverables.
(h) Basic Training. Developer will provide a reasonable amount of training to Customer in the use and support of the Software for each applicable Project. Customer may from time to time request Developer to provide additional training regarding the use and support of the Software. Developer shall use its reasonable commercial efforts to accommodate such requests.
U) Non-solicitation of Developer's Employees. Customer agrees not to knowingly hire or solicit Developer's employees during performance of this Agreement and for a period of 1 year after termination of this Agreement without Developer's written consent.
3 |
3. Development Fees. Developer shall provide to Customer an itemized, detailed accounting of time actually spent on Projects on a monthly basis (Time Report), or on other time period if specifically requested by Customer. Customer shall pay to Developer fees for Services rendered (the "Development Fees") in amount based on the amount of hours logged by developer in the respective Time Report sent on the Customer's email account.
The hourly rate for the development services is 40 USO/hour. The hourly rate for the graphic design services is 25 USO/hour.
The hourly rate for the quality assurance services is 25 USO/hour The hourly rate for project management services is 35 USO/hour.
The hourly rates can be reviewed every 6 months and changed upon the Customer's and Developer's mutual agreement on this matter.
The payment for Developer's services must be performed by the Customer on the monthly basis with regards to the Time Report.
Customer takes responsibility to review the monthly Time report provided Developer and pay the invoice for the respective time period during 5 business days period after the invoice was submitted.
The payment for every invoice must be submitted via a direct wire transfer on the Developer's bank account provided in the invoice.
4. Intellectual Property Ownership. The Parties agree that the Customer shall be the sole owner of all right title and interest in and to the Software including all Source Code and Object Code associated with the Software and Documentation and all results of the Development Services to be rendered pursuant to this Agreement, all whether in writing or not in writing (collectively the "Technology") provided that ownership in that Technology shall vest in the Customer. This ownership is conditioned upon full payment of the compensation due to the Developer under this Agreement for a respective time period.
The source code will be delivered to the Customer after the Developer receives payment for this Milestone or reporting period invoice (e.g. monthly payment).
5. Term and Termination. The term of this Agreement shall commence as of the date first set forth above and continue in effect until terminated in accordance with the terms hereof. Either party may terminate this Agreement without cause upon not less than 30 days prior written notice.
6. Headings. The section headings used in this Agreement are intended for reference purposes only and shall not affect the interpretation of this Agreement.
7. Counterparts. This Agreement may be executed in two (2) or more counterparts, each of which shall be considered an original but all of which together will constitute one and the same agreement. The execution and telecopy transmission of a facsimile shall be effective as execution and delivery of a counterpart.
4 |
8. No Assignment. The parties may not assign all or a portion of their rights and obligations hereunder without the prior written consent of the other party which shall not be unreasonably withheld or delayed.
9. Independent Contractor Status. Developer's relationship with Customer is that of an independent contractor and nothing in this Agreement shall be construed as creating any relationship of partnership, agency, joint venture, principal and agent or employer-employee. Neither party may make any representation, contract or commitment on behalf of the other party without the prior written consent of the other Party.
10. Limitation of Developer's Liability to Customer
a. In no event shall Developer be liable to Customer for lost profits of Customer, or special or consequential damages, even if Developer has been advised of the possibility of such damages.
b. Developer shall not be liable for any claim or demand made against Customer by any third party.
c. Customer shall indemnify Developer against all claims, liabilities and costs, including reasonable attorney fees, of defending any third party claim or suit arising out of the use of the Software provided under this Agreement.
IN WITNESS WHEREOF, the parties hereto have duly entered and executed this Agreement as of the day and year first above written and represent and warrant that the party executing this Agreement on their behalf is duly authorized.
Nexscient, Inc |
| Corsac Technologies Corporation |
Fred E. Tannous |
| Igor Omelianchuk |
CEO of Nexscient, Inc. |
| CEO at Corsac Technologies Corporation |
5 |
Addendum 1
Scope of work for Nexscient system for Pilot Study
Goal:
- Deliver a comprehensive sensor-based monitoring system that utilizes a variety of sensors mounted on machinery. This system aims to proactively detect irregularities, anomalies, or potential issues with the machinery's performance. It will provide real-time notifications to engineers, enabling them to take prompt and informed action to prevent downtime, minimize disruptions, and ensure optimal operational efficiency of the machinery.
Team composition:
1 UI/UX designer - provides team with user flows and page designs
1 senior backend .Net developer/ Architect - supervises system architecture and backend development, develops features, participates in requirements elaborations to ensure compatibility of features.
1 middle backend .Net developer - develops features, participates in requirements elaborations
1 middle frontend Angular developer - develops UI and logic for the WEB page of the application
1 middle DevOps engineer - engages in infrastructure set up, security protocols, storing sensitive development data such as accounts, accesses etc
- 2 Quality Assurance engineers - perform manual UI testing, automated testing of backend, develop test cases and test plan
1 Project Manager - conducts meetings and ceremonies, elaborates requirements, supervises development processes, communicates with customer
Requirements (High level):
- User Registration and Authentication:
- Users must be able to create accounts using a valid email address and password.
- Users should receive a confirmation email upon registration.
- Registered users must be able to log in using their credentials.
- Connect to Sensors and Collect Data:
- The system should be able to establish connections with Nexscient sensors.
- Sensors should transmit data to the system in real-time or at specified intervals.
- The system must provide authentication mechanisms to ensure only authorized sensors can send data.
- Data collected from sensors should include Acoustic, vibrations, temperature (based on sensor specification and project requirements), and it should be time stamped upon receipt.
6 |
- Process Collected Data:
- Incoming sensor data should be normalized and validated for accuracy and consistency. In future updates data will be used for machine learning so accuracy and consistency is of a high priority.
- The system should apply predefined algorithms or rules to process raw sensor data into meaningful metrics.
- Processed data should be stored in a database for further analysis and reporting.
- Create Reports Based on Collected and Processed Data:
- Users should be able to generate custom reports based on selected time periods and sensor types.
- Reports should include visualizations such as graphs, charts, and tables to represent data trends.
- Users should have the option to export reports in formats such as PDF or CSV or HTML.
- Display Live Data:
- The system should provide a real-time dashboard that displays live sensor data and updates at regular intervals.
- Users should be able to customize the dashboard layout and select the sensors to be displayed.
- The dashboard should support interactive elements like real-time charts and gauges.
- Manage Users:
- Administrators should have the ability to create, modify, and delete user accounts.
- Users should be categorized into roles (e.g., super admin, company admin, engineer, etc.) with varying levels of access.
- User authentication and authorization should be implemented to ensure data security and privacy.
- Manage Subscriptions:
- Users should be able to buy subscription for different tiers and complete payment for chosen subscription
- Users should be able to subscribe to receive notifications based on specific sensor events or data thresholds.
- Subscriptions can include email alerts, SMS notifications, or in-app messages.
- Users should have the ability to modify or cancel their subscriptions.
7 |
- Notifications (this will be a big part of the system to achieve the best results with machinery maintenance that is why we paid a bit more attention to them):
- Notifications can be triggered by events such as sensor thresholds being crossed, system updates, or subscription-based triggers.
- Users should be able to define their notification preferences, such as choosing the communication channels (email, SMS, etc) and frequency.
- Users should have the option to set custom triggers for notifications, like receiving an alert when a temperature sensor records a value above a certain threshold.
- Notifications should provide concise and relevant information, including the sensor name, event description, and timestamp.
- For critical events, real-time notifications should be sent immediately.
- Non-critical notifications can be batched and sent at regular intervals to prevent overwhelming users.
- Users should have access to a notification history log, detailing past notifications with their statuses and timestamps.
- The system should support pre-defined notification templates for common events to ensure consistent messaging.
- A testing mode should be available to simulate notifications and ensure the notification system is functioning properly.
Infrastructure and set up:
Configure angular project
Configure .NET project
initial set up Cl/CD pipelines
set up test, stage, prod instances
design and implement Virtual Network For architecture solution
configuring the database instance
creating and initially configuring Virtual Machine for running application
Testing connectivity and tuning firewall settings
preparing repositories for source code
develop building script for frontend
develop delivery to server script for frontend
develop building script for backend
develop delivery to server script for backend
Cl/CD workflow and optimisation
Create and configure domain models with relations design system
8 |
Budget and time estimate:
[REDACTED FOR CONFIDENTIAL REASONS]
Payment for all Azure and other related hardware and third party services for project setup, servers and server functions will be provided by the Customer and is not part of the payment for the development services (not part of the Quote to deliver the Project according to this Specification). Developer will take reasonable actions to propose the appropriate services to the Customer and help to do all the setup of the services.
Note:
Here we suggest making the custom reports only a downloadable option for the first version of the system, as custom reports directly on interface can be challenging and take time to configure them. To reduce time to market we suggest moving custom reports, embedded in the system's interface, to next versions. This estimation is not final and may be adjusted during the development as requirements may change to fit the user demand
Development process
- We follow Agile principles and methodologies of development. Scrum is our framework of choice as it provides a good level of flexibility and control to achieve the best results. Scrum gives us a clear understanding of requirements and tasks, structures the workflow, and focuses on delivery of the best possible product in the least amount of time needed.
- Development overview:
- receive the requirements
- discuss and clarify the requirements to make sure all team members understand them on the same level
- divide requirements into deliverable increments based on priorities and architecture design
- compose backlog
- plan increment's development
- develop features to complete increment
- increment undergoes quality control
- increment is presented to customer
- increment is deployed to instance
- next increment is planned
- Based on the Milestone results and feedback the project scope and budget may change corresponding to further project needs.
9 |
Project transition
- Once all increments are delivered and tested, development and customer are satisfied with the result we initiate the transition of the project to customer if needed. This means that all the source code, all accounts and accesses are transferred to the customer and eliminated on the development side so that customer is the only owner of the source code and all the accesses.
- Transition
- make archive of the source code and transfer in secure manner to customer or upload it to Customer's coed repository
- transfer all the accounts and accesses to customer
- customer changes all passwords for all provided accounts and accesses
- Development provides customer with guidelines and instructions on how to build the project from received project components
- Development eliminates all the development and testing accounts and data, if possible and necessary, from live database in order to keep the system clean after transition
Nexscient, Inc |
| Corsac Technologies Corporation |
Fred Tannous |
| Igor Omelianchuk |
CEO of Nexscient, Inc. |
| CEO at Corsac Technologies Corporation |
10 |