43 KiB
SOFTWARE DEVELOPMENT AND IMPLEMENTATION AGREEMENT
Parties:
(Term: 3-5 Years, To be finalized based on Support/Maintenance period post-delivery)
This Software Development and Implementation Agreement (the "Agreement") is entered into effective as of [Date - e.g., August 5, 2024] (the "Effective Date"), by and between:
CellTech, a Partnership organized and existing under the laws of the Republic of the Philippines, with its principal place of business at Funda Dalipe, San Jose, Antique (hereinafter referred to as "Developer"), and online at https://gitea.opossum-arcturus.ts.net/CellTech.
AND
Western Institute of Technology, a Partnership organized and existing under the laws of the Republic of the Philippines, with its principal place of business at Lapaz, Iloilo City (hereinafter referred to as "Client").
(Developer and Client may be referred to individually as a "Party" and collectively as the "Parties").
Recitals:
A. Client requires the design, development, implementation, testing, and delivery of a custom Learner Management System (hereinafter referred to as the "System" or "LMS") as further specified herein, to meet its operational and educational requirements.
B. Developer represents that it possesses the necessary expertise, personnel, skills, and resources to develop and deliver the System in accordance with the specifications, timelines, and conditions outlined in this Agreement.
C. Client desires to engage Developer to perform such software development and implementation services ("Services"), and Developer desires to provide such Services to Client, subject to the terms and conditions set forth in this Agreement.
Agreement:
NOW, THEREFORE, in consideration of the mutual covenants, promises, and agreements contained herein, and other good and valuable consideration, the receipt and sufficiency of which are hereby acknowledged, the Parties hereto agree as follows:
ARTICLE 1: DEFINITIONS
For the purposes of this Agreement, the following terms shall have the meanings ascribed to them below:
1.1 "Acceptance Criteria" means the specific, measurable criteria defined in this Agreement or mutually agreed upon test plans, which the System must meet to be formally accepted by the Client.
1.2 "Agile" refers to the iterative and incremental software development methodology described in Section 2.2.
1.3 "Confidential Information" has the meaning set forth in Article 10.
1.4 "Deliverables" means the specific items, including software code, documentation, reports, and training materials, that Developer is obligated to provide to Client under this Agreement, as further detailed in Section 4.3.
1.5 "Intellectual Property" means any and all patents, copyrights, trademarks, trade secrets, database rights, design rights, and other proprietary rights, whether registered or unregistered.
1.6 "LMS" or "System" means the custom Learner Management System software to be developed and implemented by Developer for Client pursuant to this Agreement.
1.7 "OPAQUE" refers to the Oblivious Pseudo-Random Function (OPRF) based Asymmetric Password-Authenticated Key Exchange protocol intended for user authentication within the System.
1.8 "PAKE" means Password-Authenticated Key Exchange, a class of cryptographic protocols allowing two parties to establish a shared cryptographic key based on a user's password without transmitting the password itself. OPAQUE is a type of PAKE protocol.
1.9 "Services" means the software design, development, implementation, testing, training, documentation, and delivery services related to the System to be performed by Developer under this Agreement.
1.10 "Sprint" means a time-boxed iteration (typically 2-4 weeks) within the Agile development process during which a defined amount of work is completed and made ready for review.
1.11 "Source Code" means the human-readable programming language instructions used to create the System software.
1.12 "UAT" means User Acceptance Testing, the process by which Client validates that the System meets the agreed-upon requirements and Acceptance Criteria.
ARTICLE 2: SCOPE OF SERVICES
2.1 General Scope: Developer shall perform the Services necessary to design, develop, test, implement, and deliver the System as described in this Agreement and its Exhibits. The System is intended to function as a comprehensive Learner Management System providing functionalities for learners, instructors, and administrators of Western Institute of Technology.
2.2 Development Methodology: Developer shall utilize an Agile (Iterative and Incremental) Software Development Life Cycle (SDLC) methodology for the performance of the Services.
a. Process: The project will be broken down into Sprints. Each Sprint will generally include planning, design, development, testing, and stakeholder review, aiming to produce a potentially shippable increment of the System. Sprint duration will be mutually agreed upon, typically [e.g., two (2)] weeks.
b. Rationale: This methodology is selected to provide adaptability to evolving requirements, facilitate early and frequent feedback from Client, foster collaboration and transparency, manage risks effectively, and maintain focus on user needs.
c. Project Management: Developer shall employ project management practices consistent with the Agile methodology. Developer shall provide Client with [e.g., weekly progress summaries via email and bi-weekly Sprint review meetings]. Project tracking and backlog management will utilize [Specify Tool, e.g., Trello, Jira, Asana, GitHub Projects - requires agreement], to which Client representatives will be granted appropriate access.
2.3 Key System Features and Characteristics: The System developed under this Agreement shall aim to possess the following features and characteristics:
a. Technology Stack:
i. Frontend: Vite utilizing Vanilla TypeScript and Bootstrap v5.3.
ii. Backend: Rust utilizing the Actix framework.
iii. Database: MariaDB (version 10 or later compatible version).
iv. Deployment Environment: Containerized using Docker and orchestrated via Docker Compose.
b. Performance & Scalability: The architecture is designed for efficient performance under expected load conditions (to be reasonably defined) and to accommodate future growth in user base and data volume anticipated by the Client over the Agreement term.
c. Security: Development practices will incorporate security considerations, including secure authentication mechanisms (specifically, the OPAQUE PAKE protocol), secure session management, input validation, protection against common web vulnerabilities (e.g., Cross-Site Scripting, SQL Injection), and adherence to standard secure coding practices. The Parties shall mutually agree upon any specific additional security standards or penetration testing requirements, if necessary.
d. User Interface (UI) and User Experience (UX): The System shall feature an intuitive, responsive user interface adaptable to various screen sizes (desktop, tablet, mobile) and designed according to the principles outlined in Section 3.1 and Exhibit A. Adherence to Web Content Accessibility Guidelines (WCAG) [Specify required level, e.g., 2.1 Level AA] will be pursued where reasonably practicable within the scope and budget.
e. Modularity: The System architecture, including the frontend widget system and backend service structure, promotes modularity to facilitate future enhancements, maintenance, and potential integrations.
2.4 Video Demonstration: As part of the Deliverables, Developer shall provide Client with a video demonstration (e.g., screen recording with narration) showcasing core System functionalities, user roles (learner, instructor, administrator), and key workflows, substantially covering the items listed below:
a. Platform Navigation and Layout.
b. Key User Journeys (Learner Course Interaction, Instructor Course Management, Administrator User/Course Management).
c. Core Feature Highlights (Dashboard, Profiles, Course Interaction, Admin Interfaces).
d. Interface Responsiveness.
2.5 Excluded Services: Unless otherwise explicitly agreed upon in a written Change Order (Article 6), the Services under this Agreement do not include:
a. Ongoing hosting services, server maintenance, or domain name registration/renewal fees beyond the initial deployment and stabilization period defined in Phase 4 of Exhibit C.
b. Creation or curation of educational content (course materials, quizzes, etc.) to be loaded into the LMS.
c. Extensive data migration services from legacy systems beyond [Define scope, e.g., "basic assistance with data mapping and import validation for user data provided in a pre-agreed format" or "data migration services as detailed in a separate Statement of Work"]. Client is responsible for data extraction and cleansing from source systems unless otherwise agreed.
d. Procurement or management of hardware infrastructure required by Client outside the scope of the development and deployment process.
e. Licenses for any third-party software required by Client for its own operations that may interact with the LMS, unless such software is directly embedded by Developer as part of the System Deliverable and its licensing terms are passed through.
ARTICLE 3: SYSTEM SPECIFICATIONS AND ARCHITECTURE
3.1 User Interface (UI) Layout and Flow: The general layout principles and high-level component relationships for the System's user interface are conceptually depicted in Exhibit A (User Interface Flow Diagram), incorporated herein by reference. Key layout components include a persistent Header, a contextual Sidebar (where applicable), a Main Content Area, and a Footer. Specific screen designs and detailed UI specifications will be developed and refined during the Sprints, subject to Client review and feedback during Sprint Reviews.
3.2 Backend Architecture: The high-level backend architecture, illustrating the interaction between the Actix framework, MariaDB database, OPAQUE authentication flow, and other core components within the planned containerized environment, is conceptually depicted in Exhibit B (Backend Architecture Diagram), incorporated herein by reference.
3.3 Technical Specifications: Detailed technical specifications, including specific API endpoint definitions, data model schemas, and performance guidelines, may be documented collaboratively by the Parties during the project lifecycle, potentially in a shared repository or document store ([Specify if needed, e.g., "maintained in the project's shared Confluence space"]), and referenced herein upon mutual agreement. Initial database schema is based on requirements outlined during project initiation.
ARTICLE 4: PROJECT TIMELINE AND DELIVERABLES
4.1 Estimated Timeline: The estimated timeline for the completion of the Services is approximately Thirty-Five (35) weeks, commencing from the agreed-upon project start date. A detailed breakdown of phases, estimated task durations, and dependencies is illustrated in the Gantt chart provided as Exhibit C (Project Timeline Gantt Chart), incorporated herein by reference.
4.2 Acknowledgement of Estimates: Client acknowledges that the timeline provided in Exhibit C is an estimate based on the initial Scope of Services, assumptions about requirements stability, and the Agile methodology. Timelines may be adjusted based on the outcomes of Sprints, the complexity of features prioritized, Client feedback responsiveness, unforeseen technical challenges, or mutually agreed-upon Change Requests processed via the Change Management procedure (Article 6). Developer shall promptly communicate any anticipated significant deviations from the estimated timeline.
4.3 Key Deliverables: Major deliverables under this Agreement include:
a. Access to functional System increments for review and feedback at the conclusion of relevant Sprints (typically via a staging environment).
b. The final, deployed System software meeting the Acceptance Criteria (Article 5), delivered to the agreed production environment.
c. The Video Demonstration (as per Section 2.4).
d. System Documentation, comprising:
i. User Manuals: Guides for administrators, instructors, and learners covering core functionalities.
ii. Technical Documentation: Including deployment instructions, system architecture overview, API endpoint documentation (e.g., generated OpenAPI spec), and database schema description, sufficient to enable technically skilled personnel to operate, maintain, and potentially extend the System. The specific level of detail shall be [e.g., "standard industry practice for systems of similar complexity" or specify further detail if required].
e. Source Code for the custom-developed portions of the System delivered under this Agreement, provided via [Specify method, e.g., access to a Git repository, digital media transfer]. Source code escrow requirements, if any, must be separately agreed upon in writing.
f. Training materials and delivery of training sessions as specified in Section 4.4.
4.4 Training and Handover: Upon successful deployment (Go-Live milestone in Exhibit C), Developer shall provide:
a. Training for Client's designated administrators and instructors, covering system administration, course management, user management, and key instructional features. This training shall consist of [Specify format, duration, number of sessions, e.g., "up to two (2) remote training sessions, each lasting approximately three (3) hours, for a maximum of ten (10) Client attendees per session"].
b. Onboarding materials suitable for learners, such as a concise user guide document and potentially referencing the Video Demonstration.
c. A formal handover meeting and documentation transfer concluding the development and deployment phases outlined in Exhibit C.
ARTICLE 5: TESTING AND ACCEPTANCE
5.1 Testing: Developer shall perform internal testing throughout the development process, appropriate to the Agile methodology. This includes developer testing (e.g., unit tests where applicable), integration testing of components, and functional testing against requirements defined for each Sprint.
5.2 User Acceptance Testing (UAT): Client shall be responsible for conducting UAT. Developer shall notify Client when specific features, modules, or System increments are ready for UAT (typically at the end of Sprints or designated UAT phases as shown in Exhibit C). Client shall perform UAT in accordance with mutually agreed-upon test plans or use cases based on the Acceptance Criteria. Client shall have [Specify duration, e.g., ten (10) business days] from such notification to conduct UAT for the provided increment and report any identified material defects or non-conformities ("Defects") to Developer in writing via the agreed project tracking tool ([Tool name from 2.2.c]). Failure to report Defects within the specified period may be deemed acceptance of that increment for the purpose of proceeding with development, without prejudice to addressing Defects identified later within the Warranty Period.
5.3 Acceptance Criteria: The System (or relevant increment) shall be deemed formally accepted by Client upon the earliest occurrence of:
(a) Client providing Developer with written notice of acceptance; or
(b) Client using the delivered System or increment in a live production environment for its intended operational purposes (excluding UAT activities); or
(c) The expiration of the final UAT period for the complete System (as per the timeline in Exhibit C) without Client providing written notice of material Defects that prevent acceptance according to the agreed Acceptance Criteria.
Acceptance Criteria shall primarily be based on the functional requirements defined in the project backlog and specifications developed during the Sprints, demonstrating that the System operates substantially as intended.
5.4 Defect Resolution: Developer shall use commercially reasonable efforts to correct any material Defects identified during UAT and properly reported by Client within the agreed timeframe. Defect prioritization and resolution timelines will be managed as part of the Agile backlog grooming and sprint planning process. Resolution of minor defects or cosmetic issues may be deferred to subsequent Sprints or the Warranty Period by mutual agreement.
ARTICLE 6: CHANGE MANAGEMENT
6.1 Change Request Process: Both Parties acknowledge that requirements may evolve. Any proposed change to the agreed-upon Scope of Services, features, specifications, or Deliverables after the initial baseline established during planning ("Change Request") must be submitted in writing by either Party to the other Party's designated project contact.
6.2 Impact Assessment: Upon receipt of a Change Request, Developer shall promptly assess its potential impact on the project scope, technical feasibility, estimated timeline, resource allocation, and overall project cost. Developer will provide Client with a written impact analysis, including any proposed adjustments to fees or schedule, within [e.g., five (5) business days], or a longer period if mutually agreed for complex requests.
6.3 Approval: Developer shall not proceed with implementing any Change Request until both Parties have formally agreed in writing (e.g., through a signed Change Order document referencing this Agreement) to the Change Request itself, its assessed impact, and any associated adjustments to the Agreement's terms, including fees and timeline. Approved Change Orders shall become part of this Agreement.
ARTICLE 7: PROJECT CONSIDERATIONS AND RISK MITIGATION
7.1 Potential Scope Evolution: Client acknowledges that the flexibility inherent in the Agile process necessitates active participation and decisive feedback from Client representatives to manage scope effectively. Both Parties agree to utilize the Change Management process (Article 6) diligently to ensure that scope adjustments are intentional, documented, and their impacts understood and agreed upon, thereby mitigating risks to project timelines and budget.
7.2 Initial Setup and Data Migration:
a. Client Responsibilities: Client is responsible for providing necessary access to its infrastructure (if applicable), timely feedback, subject matter expertise, and ensuring user readiness for the System implementation. Client shall designate key personnel to participate in project meetings, reviews, and UAT.
b. Data Migration: [Select ONE option based on agreement, requires confirmation]:
- Option 1 (Migration Not Included/Basic Assistance): Data migration from Client's existing systems is not included in the scope of Services under the base Fees. Developer may provide reasonable assistance with defining data formats or validating imported data, subject to separate agreement or Change Order if significant effort is required. Client is primarily responsible for extracting, cleansing, formatting, and importing its data.
- Option 2 (Migration Included - Define Scope): Data migration services for [Specify data types, e.g., user profiles, basic course structures] from [Specify source system(s)] are included in the Scope of Services. A detailed Data Migration Plan outlining responsibilities, formats, timelines, and validation procedures shall be developed collaboratively by the Parties early in the project. Client remains responsible for the accuracy and completeness of source data provided. Complexities discovered during migration may necessitate a Change Request.
c. Support and Training: Developer commits to providing the onboarding support, training, and documentation outlined in Articles 2, 4, and associated Exhibits to mitigate challenges associated with system transition and user adoption.
ARTICLE 8: FEES AND PAYMENT SCHEDULE
8.1 Fees and Payment Terms: The total fees, billing rates (if applicable), invoicing procedures, and payment schedule for the Services rendered under this Agreement shall be detailed in a separate Payment Schedule document (designated as Exhibit D), which shall be mutually agreed upon by the Parties in writing and incorporated herein by reference upon execution. Exhibit D shall specify currency (Philippine Peso - PHP, unless otherwise agreed), payment milestones or frequency, and payment terms (e.g., Net 30 days from invoice date).
8.2 Expenses: Unless otherwise specified in Exhibit D, Developer shall bear its own general overhead costs. Any direct, out-of-pocket expenses reasonably incurred by Developer specifically for the project (e.g., pre-approved travel, specific third-party software licenses necessary for the deliverable) shall be reimbursable by Client only if pre-approved by Client in writing. Invoices for approved expenses shall include supporting documentation.
8.3 Taxes: Each Party shall be responsible for its own taxes imposed by relevant authorities. Fees specified in Exhibit D are exclusive of any applicable Value Added Tax (VAT) or other sales taxes, which, if applicable, shall be added to Developer's invoices and paid by Client.
ARTICLE 9: INTELLECTUAL PROPERTY RIGHTS
9.1 Ownership of Custom Developed System: Subject to Client's full payment of all fees due under this Agreement and Developer's reservation of rights in Pre-Existing IP (Section 9.2), Developer hereby assigns to Client all right, title, and interest in and to the custom Source Code and associated Deliverables specifically created by Developer for Client under this Agreement (the "Custom Developed IP").
9.2 Developer's Pre-Existing Intellectual Property: Developer shall retain all right, title, and interest in and to any software, code, libraries, tools, methodologies, know-how, or other intellectual property owned or licensed by Developer prior to the Effective Date or developed independently of this Agreement ("Developer Pre-Existing IP"), even if incorporated into the System or used in performing the Services.
9.3 License to Developer Pre-Existing IP: To the extent Developer Pre-Existing IP is incorporated into the System Deliverables, Developer hereby grants Client a perpetual, irrevocable, non-exclusive, royalty-free, worldwide license to use, reproduce, modify, and create derivative works of such Developer Pre-Existing IP solely as necessary for Client to use, operate, maintain, and enhance the System for its internal educational and administrative purposes. This license is non-transferable except to a successor of Client's entire business related to the System.
9.4 Third-Party Materials: Any third-party software or materials, including open-source software components, incorporated into the System shall be subject to the terms and conditions of their respective licenses. Developer shall identify any significant third-party components and their licenses to Client upon request or as part of the documentation Deliverable. Client's use of the System is subject to compliance with such third-party licenses.
ARTICLE 10: CONFIDENTIALITY
10.1 Definition: "Confidential Information" means any non-public information disclosed by one Party ("Disclosing Party") to the other Party ("Receiving Party") under this Agreement, whether orally or in writing, that is designated as confidential or that reasonably should be understood to be confidential given the nature of the information and the circumstances of disclosure. This includes, but is not limited to, business plans, financial information, customer lists, personnel information, technical data, trade secrets, know-how, source code (for Developer's pre-existing IP), and the terms of this Agreement.
10.2 Obligations: The Receiving Party agrees to: (a) use the Confidential Information solely for the purpose of performing its obligations or exercising its rights under this Agreement; (b) not disclose the Confidential Information to any third party without the prior written consent of the Disclosing Party, except to its employees, contractors, or legal/financial advisors who have a need to know and are bound by confidentiality obligations at least as restrictive as those herein; and (c) protect the Confidential Information from unauthorized use or disclosure using at least the same degree of care that it uses to protect its own confidential information of like importance, but not less than a reasonable degree of care.
10.3 Exclusions: The obligations under this Article shall not apply to information that the Receiving Party can demonstrate: (a) was already lawfully known to the Receiving Party at the time of disclosure, free of any obligation of confidentiality; (b) is or becomes publicly known through no wrongful act of the Receiving Party; (c) is rightfully received from a third party without restriction and without breach of this Agreement; or (d) was independently developed by the Receiving Party without reference to or use of the Disclosing Party's Confidential Information.
10.4 Required Disclosure: If the Receiving Party is compelled by law, regulation, or court order to disclose any Confidential Information, it shall provide the Disclosing Party with prompt prior written notice (to the extent legally permissible) to allow the Disclosing Party an opportunity to seek a protective order or other appropriate remedy.
10.5 Duration: The confidentiality obligations set forth herein shall survive the termination or expiration of this Agreement for a period of [e.g., five (5)] years. Obligations related to trade secrets shall survive indefinitely as long as they remain trade secrets under applicable law.
ARTICLE 11: WARRANTIES AND DISCLAIMERS
11.1 Developer Warranties: Developer warrants to Client that:
a. Performance Warranty: For a period of [Specify duration, e.g., ninety (90) days] following the date of final Acceptance of the complete System by Client ("Warranty Period"), the System will perform substantially in accordance with the material functional specifications agreed upon by the Parties under this Agreement when operated in the intended environment. Client's sole and exclusive remedy, and Developer's entire liability, for breach of this warranty shall be for Developer to use commercially reasonable efforts to correct or provide a workaround for any reproducible, material non-conformity reported by Client in writing during the Warranty Period. This warranty does not cover defects arising from misuse, modification by Client or third parties not authorized by Developer, accidents, or failure to operate the System in accordance with documentation or specified requirements.
b. Authority: Developer has the full right, power, and authority to enter into this Agreement and perform its obligations hereunder.
c. Service Performance: The Services will be performed in a professional and workmanlike manner, consistent with generally accepted industry standards.
d. Non-Infringement: To Developer's knowledge, the Custom Developed IP delivered under this Agreement does not infringe upon any valid patent, copyright, or trade secret of any third party existing under the laws of the Republic of the Philippines as of the Effective Date. Developer makes no warranty regarding infringement related to Developer Pre-Existing IP or any third-party materials.
11.2 Disclaimers: EXCEPT FOR THE EXPRESS WARRANTIES SET FORTH IN SECTION 11.1, THE SYSTEM, SERVICES, AND DELIVERABLES ARE PROVIDED "AS IS." DEVELOPER HEREBY DISCLAIMS ALL OTHER WARRANTIES, WHETHER EXPRESS, IMPLIED, STATUTORY, OR OTHERWISE, INCLUDING BUT NOT LIMITED TO ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE, AND NON-INFRINGEMENT WITH RESPECT TO THE SYSTEM AS A WHOLE OR ANY THIRD-PARTY COMPONENTS. DEVELOPER DOES NOT WARRANT THAT THE SYSTEM WILL BE ERROR-FREE, UNINTERRUPTED, OR MEET ALL OF CLIENT'S REQUIREMENTS.
ARTICLE 12: LIMITATION OF LIABILITY
12.1 Exclusion of Indirect Damages: IN NO EVENT SHALL EITHER PARTY BE LIABLE TO THE OTHER PARTY OR ANY THIRD PARTY FOR ANY INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL, PUNITIVE, OR EXEMPLARY DAMAGES (INCLUDING, BUT NOT LIMITED TO, LOST PROFITS, LOST REVENUE, LOST DATA, LOSS OF GOODWILL, OR BUSINESS INTERRUPTION) ARISING OUT OF OR IN CONNECTION WITH THIS AGREEMENT OR THE USE OR PERFORMANCE OF THE SYSTEM OR SERVICES, REGARDLESS OF THE THEORY OF LIABILITY (CONTRACT, TORT, OR OTHERWISE), EVEN IF SUCH PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
12.2 Cap on Direct Damages: EXCEPT FOR LIABILITY ARISING FROM A PARTY'S BREACH OF ITS CONFIDENTIALITY OBLIGATIONS (ARTICLE 10), INDEMNIFICATION OBLIGATIONS (IF ANY - NOT CURRENTLY INCLUDED, CONSIDER ADDING), OR INFRINGEMENT OF THE OTHER PARTY'S INTELLECTUAL PROPERTY RIGHTS, EACH PARTY'S TOTAL AGGREGATE LIABILITY TO THE OTHER PARTY FOR ALL CLAIMS FOR DIRECT DAMAGES ARISING OUT OF OR RELATING TO THIS AGREEMENT, WHETHER IN CONTRACT, TORT, OR OTHERWISE, SHALL NOT EXCEED THE TOTAL AMOUNT OF FEES ACTUALLY PAID BY CLIENT TO DEVELOPER UNDER THIS AGREEMENT DURING THE TWELVE (12) MONTH PERIOD PRECEDING THE EVENT GIVING RISE TO THE CLAIM. (Note: This cap is often heavily negotiated. Alternatives include a fixed amount or excluding certain types of direct damages).
12.3 Basis of Bargain: The Parties acknowledge that the limitations of liability and disclaimers of warranties set forth in this Agreement reflect the agreed-upon allocation of risk between the Parties and form an essential basis of the bargain, without which Developer would not have entered into this Agreement on the terms provided.
ARTICLE 13: TERM AND TERMINATION
13.1 Term: This Agreement shall commence on the Effective Date and shall continue until all Services are completed, the System is Accepted, final payment has been made, and the Warranty Period has expired, unless terminated earlier pursuant to the terms of this Article 13. The initial intended development and deployment term is estimated in Exhibit C. The overall Agreement duration might extend based on mutually agreed support terms beyond the initial delivery (as suggested by the "3-5 Year Term" note, which requires separate definition, likely in a Support Agreement).
13.2 Termination for Cause: Either Party may terminate this Agreement upon written notice if the other Party materially breaches any provision of this Agreement and fails to cure such breach within [Specify cure period, e.g., thirty (30) calendar days] after receiving written notice specifying the breach in reasonable detail. Material breaches include, but are not limited to, failure to make timely payments (by Client) or failure to meet key milestones or Deliverable requirements after reasonable opportunity to cure (by Developer).
13.3 Termination for Convenience: [Choose ONE option or delete if not applicable]:
- Option A (Client Only): Client may terminate this Agreement without cause at any time upon [Specify notice period, e.g., thirty (30) days'] prior written notice to Developer.
- Option B (Mutual): Either Party may terminate this Agreement without cause at any time upon [Specify notice period, e.g., sixty (60) days'] prior written notice to the other Party.
- Option C (No Convenience Termination): (No clause added).
13.4 Effect of Termination: Upon termination or expiration of this Agreement for any reason:
a. Developer shall cease performing Services and shall promptly deliver to Client all completed Deliverables and work-in-progress, including Source Code for Custom Developed IP up to the date of termination.
b. Client shall pay Developer for all Services performed and accepted Deliverables provided up to the effective date of termination, plus any pre-approved, non-cancelable expenses incurred. If termination is by Client for convenience (if Option A or B is chosen), Client shall also pay [Specify additional amount, e.g., "a termination fee equivalent to X% of the remaining estimated project fees" or "for the work completed during the notice period"].
c. Each Party shall promptly return or, at the Disclosing Party's request, destroy all Confidential Information of the other Party in its possession or control.
d. Any provisions of this Agreement that by their nature should survive termination (including, but not limited to, Articles 9, 10, 11.2, 12, 14, and payment obligations accrued prior to termination) shall survive.
ARTICLE 14: MISCELLANEOUS
14.1 Governing Law: This Agreement and any disputes arising out of or relating to it shall be governed by and construed in accordance with the laws of the Republic of the Philippines, without regard to its conflict of laws principles.
14.2 Dispute Resolution: The Parties agree to attempt to resolve any dispute, controversy, or claim arising out of or relating to this Agreement amicably through good faith negotiation between authorized representatives. If negotiation fails within [e.g., thirty (30) days], the Parties agree [Choose ONE: e.g., "to submit the dispute to mediation under the rules of [Specify Mediation Body in the Philippines] before resorting to litigation" OR "that the exclusive venue for any legal action shall be the competent courts of [Specify City, e.g., Iloilo City], Philippines"].
14.3 Notices: All notices, requests, demands, and other communications required or permitted under this Agreement shall be in writing and shall be deemed effectively given: (a) upon personal delivery; (b) upon transmission by electronic mail to the addresses specified below (provided confirmation of receipt is obtained); or (c) three (3) business days after deposit with a reputable overnight courier or registered mail, postage prepaid, addressed to the Parties at their respective addresses first set forth above, or to such other address as a Party may designate by notice. > To Developer: Attn: [Name/Title], Email: [Email Address] > To Client: Attn: [Name/Title], Email: [Email Address]
14.4 Entire Agreement: This Agreement, including all Exhibits attached hereto (which are incorporated herein by reference), constitutes the entire agreement between the Parties with respect to the subject matter hereof and supersedes all prior or contemporaneous proposals, understandings, representations, warranties, covenants, and agreements, whether written or oral, relating thereto.
14.5 Amendments: No amendment, modification, or waiver of any provision of this Agreement shall be effective unless in writing and signed by duly authorized representatives of both Parties.
14.6 Assignment: Neither Party may assign or transfer this Agreement or any of its rights or obligations hereunder, without the prior written consent of the other Party, which consent shall not be unreasonably withheld or delayed. Notwithstanding the foregoing, either Party may assign this Agreement without consent in connection with a merger, acquisition, or sale of all or substantially all of its assets related to this Agreement, provided the assignee agrees in writing to be bound by the terms hereof.
14.7 Severability: If any provision of this Agreement is held by a court of competent jurisdiction to be invalid, illegal, or unenforceable, the validity, legality, and enforceability of the remaining provisions shall not in any way be affected or impaired thereby, and such provision shall be deemed modified to the minimum extent necessary to make it valid, legal, and enforceable.
14.8 Force Majeure: Neither Party shall be liable for any failure or delay in performing its obligations hereunder (except for payment obligations) if such failure or delay is caused by circumstances beyond its reasonable control, including but not limited to acts of God, war, terrorism, strikes, labor disputes, pandemics, epidemics, government orders, fire, flood, earthquake, or internet service provider failures ("Force Majeure Event"). The affected Party shall provide prompt notice to the other Party and shall use reasonable efforts to resume performance as soon as practicable. If a Force Majeure Event continues for more than [e.g., sixty (60) days], the non-affected Party may terminate this Agreement upon written notice.
14.9 Relationship of Parties: Developer is an independent contractor, and nothing in this Agreement shall be construed as creating an employment, partnership, joint venture, or agency relationship between Developer and Client. Neither Party has the authority to bind the other Party in any respect.
ARTICLE 15: EXHIBITS
The following Exhibits are attached hereto and incorporated by reference into this Agreement:
- Exhibit A: User Interface Flow Diagram
- Exhibit B: Backend Architecture Diagram
- Exhibit C: Project Timeline Gantt Chart
- Exhibit D: Payment Schedule (To be mutually agreed upon and attached)
IN WITNESS WHEREOF, the Parties hereto have caused this Software Development and Implementation Agreement to be executed by their duly authorized representatives as of the Effective Date.
[CLIENT: Western Institute of Technology]
By: ____________________________
Name: Mark Glen C. Guides
Title: [Client Representative Title]
Date: ____________________________
[DEVELOPER: Cell Tech]
By: ____________________________
Name: Jose Daniel G. Percy
Title: [Partner / Authorized Representative]
Date: ____________________________
By: ____________________________
Name: Rekcel M. Endencia
Title: [Partner / Authorized Representative]
Date: ____________________________
EXHIBIT A: User Interface Flow Diagram
---
config:
theme: neo-dark
---
flowchart LR
subgraph Layouts["Layouts"]
Centered["🎯 Centered Layout (Login, Register)"]
ThreeCol["🏛️ Three-Column Layout (Admin Dash)"]
SplitCol["| Sidebar | Content | (Split Column Layout)"]
end
Header["🧭 Header (Logo, Menu, User Profile Dropdown)"]
Sidebar["📚 Sidebar (Optional, Collapsible)"]
MainContent["🖥️ Main Content Area (Hosts Widgets/Pages)"]
Footer["📎 Footer (Links, Copyright)"]
Modal["P M Modal Container"]
LoginPage["🔑 Login Page"]
LoginWidget["🧩 Login Widget (SRP)"]
RegisterButtonWidget["🧩 Button Widget -> Register"]
RegisterPage["✍️ Register Page"]
RegisterInfoWidget["🧩 Register Info Widget"]
LoginButtonWidget["🧩 Button Widget -> Login"]
DashboardPage["📊 Dashboard Page"]
VariousWidgets["🧩 Various Dashboard Widgets"]
ProfilePage["👤 Profile Page"]
ProfileInfoWidget["🧩 Profile Info Widget (Pic, Name, ID, DOB)"]
PostFeedWidget["🧩 Post Feed Widget"]
AdminPage["⚙️ Admin Dashboard"]
StudentsWidget["🧩 Students Widget"]
TeachersWidget["🧩 Teachers Widget"]
ManageStudentsPage["📋 Manage Students Page"]
StudentTableWidget["🧩 Student Table Widget"]
LoginPage --> Centered
RegisterPage --> Centered
DashboardPage --> SplitCol
ProfilePage --> SplitCol
AdminPage --> ThreeCol
ManageStudentsPage --> SplitCol
LoginPage --> LoginWidget
LoginPage --> RegisterButtonWidget
RegisterPage --> RegisterInfoWidget
RegisterPage --> LoginButtonWidget
DashboardPage --> VariousWidgets
ProfilePage --> ProfileInfoWidget
ProfilePage --> PostFeedWidget
AdminPage --> StudentsWidget
AdminPage --> TeachersWidget
ManageStudentsPage --> StudentTableWidget
Header --> Sidebar
Sidebar --> MainContent
MainContent --> Footer
UserProfile["User Profile"] --> Modal
Modal --> AccountSettingsWidget["🧩 Account Settings Widget"]
MenuLinks["Menu Links"] --> Modal
Modal --> UnderConstructionWidget["🧩 'Under Construction' Widget (e.g., Classrooms)"]
End of Exhibit A
EXHIBIT B: Backend Architecture Diagram
flowchart TD
subgraph A["🌐 Client (Browser)"]
direction LR
Frontend["Vite App"]
end
subgraph B["🐳 Docker Environment"]
direction TB
subgraph C["🚦 Actix Backend Container (lms-backend)"]
direction TB
ActixServer["🚀 Actix HTTP Server"] --> Middleware["🛡️ Middleware (CORS, Log, Auth*)"]
Middleware --> Router["🗺️ Router (handlers.rs)"]
Router --> Handlers["⚙️ Route Handlers"]
Handlers -- Uses --> DBPool["💾 DB Pool (SQLx)"]
Handlers -- Uses --> Models["📝 Data Models (models.rs)"]
Handlers -- Uses --> Errors["❗ Error Handling (errors.rs)"]
Handlers -- Uses --> AppState["🧠 App State (Temp SRP/Session*)"]
Handlers -- Calls --> DBModule["🗃️ DB Logic (db.rs)"]
DBModule -- Uses --> DBPool
DBModule -- Uses --> Models
end
subgraph D["🗄️ MariaDB Container (db)"]
MariaDB["MariaDB Server"] -- Stores --> LMSData["LMS Database (lms_db)"]
end
C -- Connects via Network --> D
end
A --> B
End of Exhibit B
EXHIBIT C: Project Timeline Gantt Chart
gantt
title LMS Development Timeframe (Estimated)
dateFormat YYYY-MM-DD
axisFormat %Y-%m-%d
todayMarker stroke-width:3px,stroke:#E67E22,stroke-opacity:0.8
%% Define Sections based on Phases
section Phase 1: Planning & Design (Approx. 5 Weeks)
Requirements Gathering & Analysis :req, 2024-01-15, 10d
System Architecture Design :design, after req, 10d
UI/UX Wireframing & Prototyping :wireframe, after design, 10d
Tech Stack Finalization & Setup :setup, after design, 5d
Phase 1 Review & Approval :p1review, after wireframe, 5d
section Phase 2: Core Development (Approx. 18 Weeks)
Database Schema Implementation :dbdev, after setup, 15d
Backend Core & Auth Dev (Rust) :backend, after setup, 50d
Frontend Foundational Setup :frontend_setup, after setup, 15d
API Development & Integration :api, after backend, 30d
Frontend UI Development :frontend_ui, after frontend_setup, 40d
Widget System Implementation :frontend_widget, after frontend_setup, 20d
Module Development (Iterative) :modules, after api, 60d
Initial Dev Testing & Integration :devtest, after modules, 15d
section Phase 3: Testing & Deployment (Approx. 8 Weeks)
Comprehensive QA Testing :qatest, after devtest, 20d
User Acceptance Testing (UAT) :uat, after qatest, 10d
Feedback Implementation & Bug Fixing :fixes, after uat, 10d
Deployment Preparation :deployprep, after fixes, 5d
Production Deployment & Go-Live :deploy, after deployprep, 5d
section Phase 4: Post-Launch (Approx. 4 Weeks)
System Monitoring & Stabilization :monitor, after deploy, 10d
Admin & Instructor Training :admintrain, after deploy, 10d
Learner Onboarding Materials :learnertrain, after admintrain, 10d
Final Documentation & Handover :handover, after admintrain, 10d
%% Milestones (Aligned with phase ends where logical)
milestone Phase 1 Complete : 2025-02-16
milestone Core Backend Complete : 2025-04-19
milestone Core Frontend Complete : 2025-05-31
milestone Development Complete : 2025-07-26
milestone Testing Complete : 2025-08-23
milestone Project Go-Live : 2025-08-30
milestone Project Handover : 2025-09-27
Note: Dates are estimates and subject to refinement based on detailed sprint planning and potential scope adjustments defined via the Change Management process (Article 6). End of Exhibit C