Live Gameweek Updates
Never miss a fixture. Follow every Botola Inwi gameweek with results, kickoff times, and standings as they happen.
As a user, I should be able to sign up, log in, and maintain a session to access personalized content. Implementation contract: - Outcome: Identity Access Management - Requirement sources: - src-26cf7f2abbb6a3e3 - src-35a1e011ea1d6756 - src-f1459cb9f6726ccb - src-04bd4bb49bdde988 - src-d0ff50f18c893ea8 - src-630a1a39d814f555 - Owned behavior: - As a user, I should be able to sign up, log in, and maintain a session to access personalized content. - User authentication - Session management - Manage user authentication and session access. - Interfaces: - API for authentication - Session storage - Provide identity.access.management: Manage user authentication and session access. - State transitions: - User session creation - User session termination - Failure and safety behavior: - Authentication failure - Session expiration Acceptance criteria: - The task-owned behavior is implemented and verified without undeclared mocks or downstream assumptions. - User can sign up - User can log in - User session is maintained - Capability identity.access.management implements Manage user authentication and session access. and is verified through its declared interfaces.
As a Frontend Developer, implement the shared Navbar component from its approved JSX/CSS design and reuse it across all declared pages without duplicating local variants. Implementation contract: - Outcome: Implement Shared Navbar - Owned behavior: - As a Frontend Developer, implement the shared Navbar component from its approved JSX/CSS design and reuse it across all declared pages without duplicating local variants. - Implement shared design sections: Header, Navbar. Acceptance criteria: - The task-owned behavior is implemented and verified without undeclared mocks or downstream assumptions. - The shared Navbar component renders once and is reused by every declared consuming page.
As a Frontend Developer, implement the shared Footer component from its approved JSX/CSS design and reuse it across all declared pages without duplicating local variants. Implementation contract: - Outcome: Implement Shared Footer - Owned behavior: - As a Frontend Developer, implement the shared Footer component from its approved JSX/CSS design and reuse it across all declared pages without duplicating local variants. - Implement shared design sections: Footer. Acceptance criteria: - The task-owned behavior is implemented and verified without undeclared mocks or downstream assumptions. - The shared Footer component renders once and is reused by every declared consuming page.
As a user, I should have authorized access to view gameweek, news, injury, and fantasy sections. Implementation contract: - Outcome: Identity Authorization - Requirement sources: - src-35a1e011ea1d6756 - src-f1459cb9f6726ccb - src-45e906a5262e0fa5 - src-04bd4bb49bdde988 - src-eb3b8f92e8a3559a - src-26cf7f2abbb6a3e3 - src-d0ff50f18c893ea8 - src-630a1a39d814f555 - Owned behavior: - As a user, I should have authorized access to view gameweek, news, injury, and fantasy sections. - Role-based access control - View Gameweek, News, Injury, and Fantasy Sections (User) — trigger: User navigates to the website to access the latest gameweek updates, news, injury reports, and fantasy football information.; outcomes: User sees up-to-date gameweek information., User reads news and injury updates., User accesses fantasy football content. - Update News and Injury Information (Content Manager) — trigger: Content Manager initiates an update to news or injury information for the website.; inputs: New or updated news content, New or updated injury reports; outcomes: Website displays updated news and injury information to users. - Enforce the accepted privileged-access distinctions and authorization decisions. - Interfaces: - Authorization middleware - Input contract for Update News and Injury Information: New or updated news content, New or updated injury reports - Consume identity.access.management: Manage user authentication and session access. - Provide identity.authorization: Enforce the accepted privileged-access distinctions and authorization decisions. - State transitions: - Access granted - Access denied - When User navigates to the website to access the latest gameweek updates, news, injury reports, and fantasy football information.: User sees up-to-date gameweek information., User reads news and injury updates., User accesses fantasy football content. - When Content Manager initiates an update to news or injury information for the website.: News and injury data is modified and published. - Failure and safety behavior: - Unauthorized access attempt - If View Gameweek, News, Injury, and Fantasy Sections cannot complete: Sections unavailable or outdated.. - If Update News and Injury Information cannot complete: Updates not saved or published.. - Use authoritative session/current-user state, enforce access server-side, and fail closed without exposing prototype identity data. Acceptance criteria: - The task-owned behavior is implemented and verified without undeclared mocks or downstream assumptions. - Access control enforced - Unauthorized access blocked - When User navigates to the website to access the latest gameweek updates, news, injury reports, and fantasy football information., User produces User sees up-to-date gameweek information.. - When User navigates to the website to access the latest gameweek updates, news, injury reports, and fantasy football information., User produces User reads news and injury updates.. - When User navigates to the website to access the latest gameweek updates, news, injury reports, and fantasy football information., User produces User accesses fantasy football content.. - View Gameweek, News, Injury, and Fantasy Sections includes the required human touchpoint: Website main sections: Gameweek, News, Injuries, Fantasy. - When Content Manager initiates an update to news or injury information for the website., Content Manager produces Website displays updated news and injury information to users.. - Update News and Injury Information includes the required human touchpoint: Content management interface for news and injuries. - Capability identity.access.management implements Manage user authentication and session access. and is verified through its declared interfaces. - Capability identity.authorization implements Enforce the accepted privileged-access distinctions and authorization decisions. and is verified through its declared interfaces.
As a Frontend Developer, implement the approved Landing page design and the task-owned sections below. Implementation contract: - Outcome: Implement Landing page - Requirement sources: - src-9d5504cdcf563602 - src-53e3b5cbd8497762 - src-ff6e9be86fde3d47 - src-3b6bbd6ded2efe94 - src-361a5c791aaac01b - src-dfb819f946a9cd61 - src-e24e2e4319048fb6 - src-6ac2d806311f46d7 - src-9ef34d5d033d8f59 - src-26cf7f2abbb6a3e3 - src-35a1e011ea1d6756 - src-f1459cb9f6726ccb - 3 additional source record(s) are retained in the structured implementation contract. - Owned behavior: - Hero entrance animation - CTA button hover/active states - Scroll-triggered reveal animation - Card hover states - Interfaces: - Consume identity.access.management: Manage user authentication and session access. Acceptance criteria: - The task-owned behavior is implemented and verified without undeclared mocks or downstream assumptions. - Landing page renders with all sections visible - Hero section CTA button navigates to authentication - Design adheres to specified color scheme and typography - Page is accessible to all users - Capability identity.access.management implements Manage user authentication and session access. and is verified through its declared interfaces.
As a Frontend Developer, implement the approved Authentication page design and the task-owned sections below. Implementation contract: - Outcome: Implement Authentication page - Requirement sources: - src-26cf7f2abbb6a3e3 - src-f1459cb9f6726ccb - src-35a1e011ea1d6756 - src-04bd4bb49bdde988 - src-d0ff50f18c893ea8 - src-630a1a39d814f555 - Owned behavior: - Toggle login/signup mode - Enter and validate email - Enter and validate password - Submit authentication form - Handle auth success with role-based routing - Handle auth failure with error message - Display loading state during request - Interfaces: - identity.authorization - Consume identity.access.management: Manage user authentication and session access. - State transitions: - User authenticated - Content Manager authenticated - Failure and safety behavior: - Invalid email or password - Account already exists Acceptance criteria: - The task-owned behavior is implemented and verified without undeclared mocks or downstream assumptions. - Render Authentication page with AuthenticationContext and AuthenticationWorkspace - Visible page title, role explanations, and pathways - Login/signup toggle, input fields, validation messages, and submit button - Form submission with loading state and success/failure feedback - Role-based routing - Design structure and theme maintained - Access for Users and Content Managers - Capability identity.access.management implements Manage user authentication and session access. and is verified through its declared interfaces.
As a content manager, I should be able to update news and injury information on the website. Implementation contract: - Outcome: Content Management Update - Requirement sources: - src-eb3b8f92e8a3559a - src-04bd4bb49bdde988 - src-26cf7f2abbb6a3e3 - src-35a1e011ea1d6756 - src-f1459cb9f6726ccb - src-d0ff50f18c893ea8 - src-630a1a39d814f555 - src-45e906a5262e0fa5 - Owned behavior: - As a content manager, I should be able to update news and injury information on the website. - Content update - Data persistence - Update News and Injury Information (Content Manager) — trigger: Content Manager initiates an update to news or injury information for the website.; inputs: New or updated news content, New or updated injury reports; outcomes: Website displays updated news and injury information to users. - Update news and injury information with durable state. - Interfaces: - API for content updates - Input contract for Update News and Injury Information: New or updated news content, New or updated injury reports - Consume identity.access.management: Manage user authentication and session access. - Provide content.management.update: Update news and injury information with durable state. - Consume identity.authorization: Enforce the accepted privileged-access distinctions and authorization decisions. - State transitions: - Content updated - Content published - When Content Manager initiates an update to news or injury information for the website.: News and injury data is modified and published. - Failure and safety behavior: - Update failure - Data inconsistency - If Update News and Injury Information cannot complete: Updates not saved or published.. Acceptance criteria: - The task-owned behavior is implemented and verified without undeclared mocks or downstream assumptions. - Content updates are saved - Updated content is displayed - When Content Manager initiates an update to news or injury information for the website., Content Manager produces Website displays updated news and injury information to users.. - Update News and Injury Information includes the required human touchpoint: Content management interface for news and injuries. - Capability identity.access.management implements Manage user authentication and session access. and is verified through its declared interfaces. - Capability content.management.update implements Update news and injury information with durable state. and is verified through its declared interfaces. - Capability identity.authorization implements Enforce the accepted privileged-access distinctions and authorization decisions. and is verified through its declared interfaces.
As a Frontend Developer, implement the approved Main Website Sections page design and the task-owned sections below. Implementation contract: - Outcome: Implement FantasyTeamSummary section - Requirement sources: - src-9c2eec22f1155146 - src-26cf7f2abbb6a3e3 - src-35a1e011ea1d6756 - src-f1459cb9f6726ccb - src-04bd4bb49bdde988 - src-d0ff50f18c893ea8 - src-630a1a39d814f555 - src-45e906a5262e0fa5 - src-eb3b8f92e8a3559a - Owned behavior: - Display fantasy team summary metrics and actions - Interfaces: - Consume identity.access.management: Manage user authentication and session access. - Consume identity.authorization: Enforce the accepted privileged-access distinctions and authorization decisions. Acceptance criteria: - The task-owned behavior is implemented and verified without undeclared mocks or downstream assumptions. - Render FantasyTeamSummary component once on Main Website Sections page - Display all metrics and details from TEAM_DATA - Ensure 'Pick Team' and 'View Leagues' buttons are functional and styled - Maintain responsive layout across screen sizes - Restrict access to User persona - Capability identity.access.management implements Manage user authentication and session access. and is verified through its declared interfaces. - Capability identity.authorization implements Enforce the accepted privileged-access distinctions and authorization decisions. and is verified through its declared interfaces.
As a Frontend Developer, implement the approved Main Website Sections page design and the task-owned sections below. Implementation contract: - Outcome: Implement Main Website Sections page - Requirement sources: - src-45e906a5262e0fa5 - src-f1459cb9f6726ccb - src-63cd757feed967de - src-26cf7f2abbb6a3e3 - src-35a1e011ea1d6756 - src-04bd4bb49bdde988 - src-d0ff50f18c893ea8 - src-630a1a39d814f555 - src-eb3b8f92e8a3559a - src-64706a607ceaa0d7 - src-1f9705591f101e7c - src-487e84ba32ca7459 - Owned behavior: - Display current and historical gameweek fixtures - Render news articles - List player injuries - Manage fantasy football team - View Gameweek, News, Injury, and Fantasy Sections (User) — trigger: User navigates to the website to access the latest gameweek updates, news, injury reports, and fantasy football information.; outcomes: User sees up-to-date gameweek information., User reads news and injury updates., User accesses fantasy football content. - Implement the accepted behavior View Gameweek, News, Injury, and Fantasy Sections with authoritative outcomes and failure handling. - Interfaces: - gameweeks - news_articles - injuries - fantasy_teams - Consume content.management.update through fantasy_teams. - Consume content.management.update through injuries. - Consume content.management.update through news_articles. - Consume identity.access.management: Manage user authentication and session access. - Consume identity.authorization: Enforce the accepted privileged-access distinctions and authorization decisions. - Provide accepted.behavior.8deb28dd5ccf8b67: Implement the accepted behavior View Gameweek, News, Injury, and Fantasy Sections with authoritative outcomes and failure handling. - State transitions: - Load gameweek data - Load news articles - Load injury data - Load fantasy team data - When User navigates to the website to access the latest gameweek updates, news, injury reports, and fantasy football information.: User sees up-to-date gameweek information., User reads news and injury updates., User accesses fantasy football content. - Display live fantasy squad data. - Use neutral loading, empty, anonymous, and error states instead of restoring prototype data. - Display live injury data. - Display live news data. - Failure and safety behavior: - Network error handling for data loading - If View Gameweek, News, Injury, and Fantasy Sections cannot complete: Sections unavailable or outdated.. - Never retain or restore hardcoded prototype data as the runtime fallback when live integration fails. - Prototype-to-live replacements: - Replace '[design.Main Website Sections.FantasySquadDisplay.implementation[1]] import React from \'react\';\nimport \'../styles/FantasySquadDisplay.css\';\n\nconst SQUAD = [\n { id: \'p1\', name: \'Ahmed Reda Tagnaouti\', position: \'GK\', team: \'Wydad AC\', gwPoints: 6, totalPoints: 98 },\n { id: \'p2\', name: \'Badr Banoun\', position: \'DEF\', team: \'Raja CA\', gwPoints: 8, totalPoints: 112 },\n { id: \'p3\', name: \'Achraf Dari\', position: \'DEF\', team: \'Wydad AC\', gwPoints: 2, totalPoints: 74 },\n { id: \'p4\', name: \'Samir El Ouarad\', position: \'DEF\', team: \'FAR Rabat\', gwPoints: 6, totalPoints: 88 },\n { id: \'p5\', name: \'Marouane Hadhoudi\', position: \'DEF\', team: \'RS Berkane\', gwPoints: 1, totalPoints: 65 },\n { id: \'p6\', name: \'Yahia Attiyat Allah\', position: \'MID\', team: \'Raja CA\', gwPoints: 12, totalPoints: 134 },\n { id: \'p7\', name: \'Mohamed Ali Bemammer\', position: \'MID\', team: \'FUS Rabat\', gwPoints: 3, totalPoints: 82 },\n { id: \'p8\', name: \'Zakaria Hadraf\', position: \'MID\', team: \'RS Berkane\', gwPoints: 7, totalPoints: 96 },\n { id: \'p9\', name: \'Karim El Berkaoui\', position: \'FWD\', team: \'Hassania Agadir\', gwPoints: 9, totalPoints: 121 },\n { id: \'p10\', name: \'Hamid Ahaddad\', position: \'FWD\', team: \'Raja CA\', gwPoints: 5, totalPoints: 108 },\n { id: \'p11\', name: \'Mohsine Moutaouali\', position: \'FWD\', team: \'Olympique Safi\', gwPoints: 4, totalPoints: 77 }\n];\n\nconst POSITION_ORDER = { GK: 0, DEF: 1, MID: 2, FWD: 3 };\n\nconst FantasySquadDisplay = () => {\n const sorted = [...SQUAD].sort((a, b) => POSITION_ORDER[a.position] - POSITION_ORDER[b.position]);\n\n return (\n <div className="fsd-root">\n <div className="fsd-pitch">\n <div className="fsd-pitch-bg" aria-hidden="true" />\n <div className="fsd-rows">\n {[\'FWD\', \'MID\', \'DEF\', \'GK\'].map((pos) => {\n const players = sorted.filter((p) => p.position === pos);\n return (\n <div key={pos} className={`fsd-row fsd-row--${pos.toLowerCase()}`}>\n {players.map((player) => (\n <div key={player.id} className="fsd-player">\n <div className="fsd-player-card">\n <span className="fsd-pos-badge">{player.position}</span>\n <span className="fsd-player-name">{player.name}</span>\n <span className="fsd-player-team">{player.team}</span>\n <div className="fsd-player-points">\n <span className="fsd-gw-pts">{player.gwPoints}</span>\n <span className="fsd-pts-label">pts</span>\n </div>\n </div>\n </div>\n ))}\n </div>\n );\n })}\n </div>\n </div>\n </div>\n );\n};\n\nexport default FantasySquadDisplay;' with fantasy_teams. Display live fantasy squad data. - Replace '[design.Main Website Sections.InjurySection.implementation[1]] import React, { useState } from \'react\';\nimport \'../styles/InjurySection.css\';\n\nconst INJURIES = [\n {\n id: \'inj-001\',\n playerName: \'Youssef El Arabi\',\n team: \'Wydad AC\',\n injuryType: \'Hamstring\',\n severity: \'moderate\',\n expectedRecovery: \'2 weeks\',\n status: \'active\',\n reportedAt: \'2026-08-10\'\n },\n {\n id: \'inj-002\',\n playerName: \'Achraf Bencharki\',\n team: \'Raja CA\',\n injuryType: \'Ankle Sprain\',\n severity: \'high\',\n expectedRecovery: \'3 weeks\',\n status: \'active\',\n reportedAt: \'2026-08-09\'\n },\n {\n id: \'inj-003\',\n playerName: \'Nayef Aguerd\',\n team: \'FAR Rabat\',\n injuryType: \'Knee\',\n severity: \'high\',\n expectedRecovery: \'6 weeks\',\n status: \'active\',\n reportedAt: \'2026-08-08\'\n },\n {\n id: \'inj-004\',\n playerName: \'Sofiane Boufal\',\n team: \'RS Berkane\',\n injuryType: \'Calf Strain\',\n severity: \'low\',\n expectedRecovery: \'1 week\',\n status: \'recovering\',\n reportedAt: \'2026-08-05\'\n },\n {\n id: \'inj-005\',\n playerName: \'Abdelilah Hafidi\',\n team: \'MAS Fez\',\n injuryType: \'Groin\',\n severity: \'moderate\',\n expectedRecovery: \'2 weeks\',\n status: \'active\',\n reportedAt: \'2026-08-07\'\n }\n];\n\nconst SEVERITY_LABEL = {\n low: \'Minor\',\n moderate: \'Moderate\',\n high: \'Severe\'\n};\n\nconst formatDate = (dateStr) => {\n const d = new Date(dateStr);\n return d.toLocaleDateString(\'en-GB\', { day: \'numeric\', month: \'short\' });\n};\n\nconst InjurySection = () => {\n const [filter, setFilter] = useState(\'all\');\n\n const filtered = filter === \'all\'\n ? INJURIES\n : INJURIES.filter((inj) => inj.severity === filter);\n\n return (\n <section className="is-root" aria-labelledby="is-title">\n <div className="is-inner">\n <div className="is-header">\n <h2 id="is-title" className="is-title">Injury Report</h2>\n <div className="is-filters" role="group" aria-label="Filter by severity">\n {[\'all\', \'high\', \'moderate\', \'low\'].map((level) => (\n <button\n key={level}\n type="button"\n className={`is-filter-btn ${filter === level ? \'is-filter-btn--active\' : \'\'}`}\n onClick={() => setFilter(level)}\n >\n {level === \'all\' ? \'All\' : SEVERITY_LABEL[level]}\n </button>\n ))}\n </div>\n </div>\n\n {filtered.length === 0 ? (\n <div className="is-empty">\n <span className="is-empty-icon" aria-hidden="true">✓</span>\n <p>No injuries match this filter.</p>\n </div>\n ) : (\n <div className="is-list">\n {filtered.map((injury) => (\n <div key={injury.id} className={`is-row is-row--${injury.severity}`}>\n <div className="is-row-player">\n <span className="is-player-name">{injury.playerName}</span>\n <span className="is-player-team">{injury.team}</span>\n </div>\n <div className="is-row-injury">\n <span className="is-injury-type">{injury.injuryType}</span>\n <span className={`is-severity is-severity--${injury.severity}`}>\n {SEVERITY_LABEL[injury.severity]}\n </span>\n </div>\n <div className="is-row-recovery">\n <span className="is-recovery-label">Recovery</span>\n <span className="is-recovery-value">{injury.expectedRecovery}</span>\n </div>\n <div className="is-row-date">\n <span className="is-date-label">Reported</span>\n <time className="is-date-value" dateTime={injury.reportedAt}>\n {formatDate(injury.reportedAt)}\n </time>\n </div>\n </div>\n ))}\n </div>\n )}\n </div>\n </section>\n );\n};\n\nexport default InjurySection;' with injuries. Display live injury data. - Replace '[design.Main Website Sections.NewsSection.implementation[1]] import React, { useState } from \'react\';\nimport \'../styles/NewsSection.css\';\n\nconst NEWS_ARTICLES = [\n {\n id: \'news-001\',\n title: \'Raja CA Signs New Striker\',\n excerpt: \'Raja CA completes the transfer of an international striker ahead of the upcoming Botola Inwi fixtures, strengthening their attacking options for the title race.\',\n publishedAt: \'2026-08-11\',\n category: \'Transfers\',\n team: \'Raja CA\'\n },\n {\n id: \'news-002\',\n title: \'Wydad AC Injury Update: Key Midfielder Out\',\n excerpt: \'Wydad AC confirms their key midfielder will be sidelined for two weeks with a hamstring injury sustained during training.\',\n publishedAt: \'2026-08-10\',\n category: \'Injury\',\n team: \'Wydad AC\'\n },\n {\n id: \'news-003\',\n title: \'Botola Inwi GW18 Preview: Top of the Table Clash\',\n excerpt: \'Matchday 18 brings a decisive encounter as league leaders face their closest rivals in a fixture that could shape the title race.\',\n publishedAt: \'2026-08-09\',\n category: \'Preview\',\n team: \'League\'\n },\n {\n id: \'news-004\',\n title: \'FAR Rabat Coach Praises Young Academy Graduate\',\n excerpt: \'The head coach highlighted the impact of their academy graduate after a standout performance in last week\\\'s fixture.\',\n publishedAt: \'2026-08-08\',\n category: \'Feature\',\n team: \'FAR Rabat\'\n },\n {\n id: \'news-005\',\n title: \'RS Berkane Extends Unbeaten Run to Six Matches\',\n excerpt: \'RS Berkane continues their strong form with a hard-fought draw, extending their unbeaten streak in the Botola Inwi.\',\n publishedAt: \'2026-08-07\',\n category: \'Match Report\',\n team: \'RS Berkane\'\n },\n {\n id: \'news-006\',\n title: \'Fantasy Football: Top Picks for Gameweek 18\',\n excerpt: \'Our analysts break down the best fantasy picks for the upcoming gameweek, including a budget-friendly midfielder from Olympique Safi.\',\n publishedAt: \'2026-08-06\',\n category: \'Fantasy\',\n team: \'League\'\n }\n];\n\nconst formatDate = (dateStr) => {\n const d = new Date(dateStr);\n return d.toLocaleDateString(\'en-GB\', { day: \'numeric\', month: \'short\', year: \'numeric\' });\n};\n\nconst NewsSection = () => {\n const [expandedId, setExpandedId] = useState(null);\n\n const handleToggle = (id) => {\n setExpandedId((prev) => (prev === id ? null : id));\n };\n\n return (\n <section className="ns-root" aria-labelledby="ns-title">\n <div className="ns-inner">\n <div className="ns-header">\n <h2 id="ns-title" className="ns-title">Latest News</h2>\n <span className="ns-count">{NEWS_ARTICLES.length} articles</span>\n </div>\n\n <div className="ns-grid">\n {NEWS_ARTICLES.map((article) => (\n <article key={article.id} className={`ns-card ${expandedId === article.id ? \'ns-card--expanded\' : \'\'}`}>\n <div className="ns-card-top">\n <span className="ns-category">{article.category}</span>\n <span className="ns-team-tag">{article.team}</span>\n </div>\n <h3 className="ns-card-title">{article.title}</h3>\n <p className="ns-card-excerpt">{article.excerpt}</p>\n <div className="ns-card-footer">\n <time className="ns-date" dateTime={article.publishedAt}>\n {formatDate(article.publishedAt)}\n </time>\n <button\n type="button"\n className="ns-read-more"\n onClick={() => handleToggle(article.id)}\n aria-expanded={expandedId === article.id}\n >\n {expandedId === article.id ? \'Show less\' : \'Read more\'}\n </button>\n </div>\n </article>\n ))}\n </div>\n </div>\n </section>\n );\n};\n\nexport default NewsSection;' with news_articles. Display live news data. Acceptance criteria: - The task-owned behavior is implemented and verified without undeclared mocks or downstream assumptions. - Render Main Website Sections page with all sections - Gameweek navigation and updates functional - News and injury data load correctly - Fantasy team management accessible - Design structure and theme adhered to - Backend integration for live data updates functional - Access restricted to authenticated users - When User navigates to the website to access the latest gameweek updates, news, injury reports, and fantasy football information., User produces User sees up-to-date gameweek information.. - When User navigates to the website to access the latest gameweek updates, news, injury reports, and fantasy football information., User produces User reads news and injury updates.. - When User navigates to the website to access the latest gameweek updates, news, injury reports, and fantasy football information., User produces User accesses fantasy football content.. - View Gameweek, News, Injury, and Fantasy Sections includes the required human touchpoint: Website main sections: Gameweek, News, Injuries, Fantasy. - Display live fantasy squad data. - The prototype value is absent from successful runtime rendering and from error fallbacks. - Display live injury data. - Display live news data. - Capability identity.access.management implements Manage user authentication and session access. and is verified through its declared interfaces. - Capability identity.authorization implements Enforce the accepted privileged-access distinctions and authorization decisions. and is verified through its declared interfaces. - Capability accepted.behavior.8deb28dd5ccf8b67 implements Implement the accepted behavior View Gameweek, News, Injury, and Fantasy Sections with authoritative outcomes and failure handling. and is verified through its declared interfaces.
As a Frontend Developer, implement the approved Content Management Interface page design and the task-owned sections below. Implementation contract: - Outcome: Implement Content Management Interface page - Requirement sources: - src-eb3b8f92e8a3559a - src-04bd4bb49bdde988 - src-26cf7f2abbb6a3e3 - src-35a1e011ea1d6756 - src-f1459cb9f6726ccb - src-d0ff50f18c893ea8 - src-630a1a39d814f555 - src-d3087258e4f82de6 - src-45e906a5262e0fa5 - Owned behavior: - visible and interactive behavior owned by these sections - Update News and Injury Information (Content Manager) — trigger: Content Manager initiates an update to news or injury information for the website.; inputs: New or updated news content, New or updated injury reports; outcomes: Website displays updated news and injury information to users. - Manage content editing and submission lifecycle. - Interfaces: - consumed API, data, or event contracts - Input contract for Update News and Injury Information: New or updated news content, New or updated injury reports - Consume identity.access.management: Manage user authentication and session access. - Consume content.management.update: Update news and injury information with durable state. - Provide content.management.editor: Manage content editing and submission lifecycle. - Consume identity.authorization: Enforce the accepted privileged-access distinctions and authorization decisions. - State transitions: - material source-backed transition with its trigger and observable result - When Content Manager initiates an update to news or injury information for the website.: News and injury data is modified and published. - Failure and safety behavior: - source-backed failure behavior owned by this task - If Update News and Injury Information cannot complete: Updates not saved or published.. Acceptance criteria: - The task-owned behavior is implemented and verified without undeclared mocks or downstream assumptions. - The Content Management Interface page must render exactly once when accessed by a Content Manager. - The ContentManagementHeader must display the page title 'Content Management Interface', role badge 'Content Manager', and workflow guidance text. - The ContentManagementEditor must allow content type selection, form editing, validation, submission, and feedback, integrating with backend for durable state. - The page must be accessible only to users with the Content Manager role. - When Content Manager initiates an update to news or injury information for the website., Content Manager produces Website displays updated news and injury information to users.. - Update News and Injury Information includes the required human touchpoint: Content management interface for news and injuries. - Capability identity.access.management implements Manage user authentication and session access. and is verified through its declared interfaces. - Capability content.management.update implements Update news and injury information with durable state. and is verified through its declared interfaces. - Capability content.management.editor implements Manage content editing and submission lifecycle. and is verified through its declared interfaces. - Capability identity.authorization implements Enforce the accepted privileged-access distinctions and authorization decisions. and is verified through its declared interfaces.

Follow Botola Inwi gameweeks, track player injuries, and build your fantasy team — all in one place made for true fans of the Moroccan champions.
Built for fans of the Moroccan champions — gameweek insight, trusted news, and a fantasy game that keeps every match meaningful.
Never miss a fixture. Follow every Botola Inwi gameweek with results, kickoff times, and standings as they happen.
Stay ahead with the latest team news and injury reports, kept current by our content team so your decisions are informed.
Build your dream squad, manage transfers, and score points on real player performances across the Moroccan league.
Four dedicated areas keep you close to the game from the first whistle to the final fantasy points.
Current fixtures, live results, and league standings for every round of Botola Inwi.
01The latest team news and match previews, updated by our editorial team.
02Track current injuries and expected recovery times before you set your lineup.
03Manage your squad, make transfers, and climb the leaderboard with real stats.
04Sign up or log in to access your personalized fantasy dashboard and follow every Botola Inwi gameweek.
Sign Up / Log InFree to join · Made for Moroccan football fans

Follow Botola Inwi gameweeks, track player injuries, and build your fantasy team — all in one place made for true fans of the Moroccan champions.
Built for fans of the Moroccan champions — gameweek insight, trusted news, and a fantasy game that keeps every match meaningful.
Never miss a fixture. Follow every Botola Inwi gameweek with results, kickoff times, and standings as they happen.
Stay ahead with the latest team news and injury reports, kept current by our content team so your decisions are informed.
Build your dream squad, manage transfers, and score points on real player performances across the Moroccan league.
Four dedicated areas keep you close to the game from the first whistle to the final fantasy points.
Current fixtures, live results, and league standings for every round of Botola Inwi.
01The latest team news and match previews, updated by our editorial team.
02Track current injuries and expected recovery times before you set your lineup.
03Manage your squad, make transfers, and climb the leaderboard with real stats.
04Sign up or log in to access your personalized fantasy dashboard and follow every Botola Inwi gameweek.
Sign Up / Log InFree to join · Made for Moroccan football fans
No comments yet. Be the first!