Aşağıda belirtilen projemizin detaylarına ve istenenlere bakarak istenen şartların tamamını karşılayacak bir frontend gerçekleştirmeni istiyoruz. Frontend React ile yazılacak , kullanışlı modern bir arayüze sahip sayfaları olmalı. projede istenenlerin her birini gerçekleştiren tüm kodları yaz ve sonrasında yapılması gerekenleri detaylıca açıkla.\n\nProjede İstenilenler:\n\"Requirements Engineering\n \nThe project aims to develop a web platform that connects student coaches with high school students preparing for Turkey’s university entrance exam (YKS). This platform will allow students to view coach profiles, assess their qualifications, and access consultancy services, while administrators can manage the coach profiles and related content.\n\nFunctional Requirements:\n1.\tUser Functionality:\no\tUsers can search a list of coaches\no\tUsers can browse coach profiles.\no\tUsers can search for coaches according to criterias (e.g., exam preparation expertise, success rates).\no\tUsers can view detailed coach information, including past achievements, educational background, and consultancy services.\n2.\tAdmin Functionality:\no\tAdmins can log into the system through a  admin panel.\no\tAdmins can add, edit, and delete coach profiles.\no\tAdmins can manage the website content related to consultancy services.\n3.\tSystem Functionality:\no\tThe system must securely store all coach-related data.\no\tEnsure data consistency during admin updates.\no\tUser search results should be delivered in real-time.\n\nNon-functional Requirements:.\no\tOnly authorized personnel (admins) can modify coach information.\no\tRegular database backups to prevent data loss.\no\tAdmin authentication with a secure login mechanism\n (e.g., strong password and 2FA). \no\tInput fields should be sanitized to prevent SQL injection attacks.\nSoftware Quality Attributes: \no\tUsability: The user interface must be intuitive and user-friendly, requiring minimal training for administrators.\no\tMaintainability: Modular codebase for easy updates and maintenance.\n\n\nUse Cases:\n•\tVisitor (Student) :\no\tBrowse coach profiles.\no\tView coach details.\no\tSearch coach by expertise\no\tManage personal profile \no\tSign up to coach’s course\no\tStop taking sessions from coach\n\n•\tCoach:\no\t Chooses the courses to teach\no\t View requests from student\no\t Respond requests\no\t Manage personal profile\no\t View course calendar\no\t Adding resource\no\t Set availability status\n\n•\tAdmin:\no\tAdd coach\no\tEdit coach\no\tDelete coach\no\tUpdate website content.\n•\tSystem:\no\tAuthenticate admin logins.\no\tEnsure data consistency between frontend and backend.\nPreface\nAudience:\n•\tProject Stakeholders: Developers, Admins, Coaches, and Students.\n\n2.\tIntroduction\nNeed for the System:\nThe system is intended to provide an online platform that connects high school students preparing for the YKS exam with coaches who have expertise in YKS preparation. This platform will enable personalized consultancy services aimed at improving students' exam performance and overall readiness for university entrance.\n\nSystem Overview:\n\nThe system will consist of three user roles:\n1.\tVisitors (Students): To search and view coach profiles.\n2.\tCoaches: To provide consultancy services and manage their availability.\n3.\tAdmins: To manage platform content and coach profiles. The platform will feature functionalities like coach search, coach profile viewing, and administrative management of coaches and their credentials. The system will be built to scale, supporting high traffic during peak exam seasons. Business/Strategic Objectives:\nThe platform supports the strategic objective of helping students achieve higher scores in the YKS by providing them with quality guidance. Additionally, it aims to establish a reputation for connecting students with top-tier mentors, expanding its service to a larger audience over time.\n\nUser Requirements Definition \nServices Provided for the User:\n•\tStudents (Visitors):\n1.\tSearch for coaches based on specific parameters like subject expertise and exam experience.\n2.\tView detailed profiles of coaches.\n3.\tContact a selected coach for services.\n•\tCoaches:\n1.\tManage personal profile and update availability for consultancy services.\n2.\tView requests from students and respond accordingly.\n\n•\tAdmins:\n1.\tManage the entire database of coaches (add, update, delete coach profiles).\n2.\tEnsure the smooth functioning of the platform, including content updates.\nNon-functional Requirements:\n \n•\tSecurity: Coaches and admin data must be securely stored and transferred.\n•\tReliability: A platform uptime of at least 99.9% during the exam season.\n•\tUsability: The user interface should be intuitive for students, coaches, and admins with minimal training. \nStandards:\n•\tFollow common web accessibility guidelines.\n\nSystem Architecture \nThe system architecture consists of:\n•\tFront-end:\no\tUser interface for students to search for coaches and view profiles.\no\tSeparate coach interface for managing profiles and responding to student queries.\n\n•\tBack-end:\no\tA database storing coach details, user credentials, and session data.\no\tAdmin dashboard for managing coach data and overall system integrity.\n•\tAuthentication Module:\no\tHandles the secure login of both coaches and admins.\nComponents to Reuse:\n•\tStandard authentication libraries.\n•\tDatabase models for user profile management.\n6.\tSystem Requirements Specification\nFunctional Requirements\n\nUser Accounts and Authentication\n \n•\tStudents, coaches, and admins must register and log in to use the platform.\n•\tSupport for login via email and phone number with two- factor authentication (2FA).\n•\tUsers should be able to reset passwords through email verification.\nStudent Features\n•\tStudents can search for coaches using filters such as:\no\tSubject expertise (Math, Physics, Chemistry, etc.).\no\tYears of experience and exam-specific expertise (YKS Specialization).\no\tAvailability (time slots and consultation schedules).\no\tRating and feedback from other students.\n•\tStudent who have multiple study can check their lecture schedule daily from Monday to Saturday and hourly 8.30  a.m. to 22.30 p.m. \n•\tStudents can contact selected coaches through:\no\tInstant messaging/chat feature within the platform.\no\tVideo call scheduling (via third-party integration like Zoom/Google Meet).\no\tStudents can upload images of questions they need help with and send them to coaches via chat.\n\nCoach Features\n•\tCoaches can create and manage their profiles, which include:\no\tPersonal details (Name, Education, Subjects taught).\no\tAvailability for consultancy services (time slots).\no\tSetting rates per session/hour (if applicable).\n•\tCoaches can view and respond to student queries via chat.\n•\tCoaches can accept or decline lesson requests from students.\n•\tCoaches should be able to set their status (available/unavailable).\n•\tCoaches will receive notifications for:\no\tNew student requests or messages.\no\tSession bookings or cancellations.\n•\tInstrutors who have multiple students can check their lecture schedule daily from Monday to Saturday and hourly 8.30 a.m. to 22.30 p.m. \n\nAdmin Features\n•\tAdmins can add, update, or delete coach profiles.\n•\tAdmins can manage the platform’s content, including:\no\tHome page announcements or exam preparation resources.\no\tUpdating subject or course categories.\n•\tAdmins can generate reports related to:\no\tActive users, session metrics, and coach ratings.\no\tIssue tracking and resolution for system-related problems.\n•\tAdmins should have access to a dashboard showing:\no\tReal-time status of platform operations.\no\tNumber of active coaches and students.\n\n\nNon-Functional Requirements\n•\tThe platform should have a responsive design, accessible on desktops, tablets, and smartphones.\n•\tThe interface should support both Turkish and English languages.\n•\tA dark mode option should be provided for users who prefer it.\n\nThe key aspects of the data design are:\n1.\tUsers: Stores basic user information like name, email, phone, and password. This is the parent entity for the specialized user types (students, coaches, and admins).\n2.\tStudents: Extends the Users entity, storing additional information specific to students, such as their study schedule.\n3.\tCoaches: Extends the Users entity, storing coach-specific details like biography, education, expertise, availability, and feedback.\n4.\tAdmins: Extends the Users entity, with an additional role field to identify the user as an administrator.\n5.\tContent Management: Stores information about the website’s content, such as announcements, exam preparation resources, and course categories.\n6.\tBookings: Tracks the consultation bookings between students and coaches, including the booking details and status. \n7.\tChats: Stores the chat messages exchanged between students and coaches during their interactions.\n\nUSER INTERFACE DESIGN:\nStudent Interface\nThe student interface will feature the following key screens:\n1. Home/Landing Page: Providing an overview of the platform, featured coaches, and call-to-action buttons for searching coaches and booking consultations.\n2. Coach Search: Allowing students to filter and search for coaches based on various criteria, such as subject expertise, success rate, and availability.\n3. View Coach Profile: Displaying detailed information about a selected coach, including their biography, qualifications, availability, and feedback from previous students.\n4.\tBooking/Consultation: Enabling students to request and schedule consultations with their chosen coaches, including the ability to upload supporting materials. \n5. Chat/Messaging: Providing a real-time chat interface for students to communicate with their assigned coaches during the consultation process.\n\nCoach Interface:\n1. Profile Management: Allowing coaches to create and update their profiles, including information about their expertise, availability, and rates.\n2. Booking/Consultation: Enabling coaches to view and respond to consultation requests from students, as well as manage their schedules and availability.\n3. Chat/Messaging: Providing coaches with the ability to communicate with their assigned students during the consultation process.\nAdmin Interface:\n1. Dashboard: Providing an overview of the platform's key metrics, such as the number of active users, coaches, and recent bookings.\n2. Coach Management: Allowing admins to add, update, and delete coach profiles, as well as monitor their performance and feedback.\n3. Content Management: Enabling admins to manage the website's content, including announcements, exam preparation resources, and course categories.\n4. Reporting: Generating reports and analytics related to user activity, booking performance, and system issues.