<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: mesCode</title>
    <description>The latest articles on DEV Community by mesCode (@mescode77).</description>
    <link>https://dev.to/mescode77</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4031312%2Fdbd82eaa-12c0-470c-89f7-a4d6057f96b8.png</url>
      <title>DEV Community: mesCode</title>
      <link>https://dev.to/mescode77</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mescode77"/>
    <language>en</language>
    <item>
      <title>ASP.NET Core mesCode</title>
      <dc:creator>mesCode</dc:creator>
      <pubDate>Thu, 16 Jul 2026 06:03:18 +0000</pubDate>
      <link>https://dev.to/mescode77/aspnet-core-mescode-342n</link>
      <guid>https://dev.to/mescode77/aspnet-core-mescode-342n</guid>
      <description>&lt;p&gt;In this backend development guide, we are setting up a secure RESTful API endpoint using ASP.NET Core Web API.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Database Configuration (appsettings.json)
&lt;/h2&gt;

&lt;p&gt;First, configure your SQL Server connection details inside the application environment variables. You can either use Windows Integrated Security or standard SQL Server Authentication.&lt;/p&gt;

&lt;h3&gt;
  
  
  Option A: Integrated Security (Windows Auth)
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;"AllowedHosts": "*",&lt;br&gt;
  "ConnectionStrings": {&lt;br&gt;
    "DefaultConnection": "Server=nameofserver;Database=nameofDB;Integrated Security=True;MultipleActiveResultSets=True;TrustServerCertificate=True;"&lt;br&gt;
  }&lt;br&gt;
}&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Option B: SQL Server Authentication
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;"AllowedHosts": "*",&lt;br&gt;
  "ConnectionStrings": {&lt;br&gt;
    "DefaultConnection": "Server=nameofserver;Database=nameofDB;User Id=your_username;Password=your_password;MultipleActiveResultSets=True;TrustServerCertificate=True;"&lt;br&gt;
  }&lt;br&gt;
}&lt;/code&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Defining the Service Contract (IService.cs)
To maintain loose coupling, we define an asynchronous interface containing standard CRUD contracts for our data mutations.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;code&gt;Task&amp;lt;IEnumerable&amp;lt;Student&amp;gt;&amp;gt; GetAllStudentsAsync();&lt;br&gt;
   Task&amp;lt;Student&amp;gt; GetStudentByIDAsync(int id);&lt;br&gt;
   Task&amp;lt;int&amp;gt; AddStudentAsync(Student student);&lt;br&gt;
   Task&amp;lt;int&amp;gt; UpdateStudentAsync(Student student);&lt;br&gt;
   Task&amp;lt;int&amp;gt; DeleteStudentAsync(int id);&lt;/code&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Core Architecture: Async Stored Procedure Execution (StudentService.cs)
Here is the underlying service layer that handles optimal stream reading with native asynchronous ADO.NET extensions.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;` public class StudentService(IConfiguration config) : IStudentService&lt;br&gt;
 {&lt;br&gt;
     private string connectionString = config.GetConnectionString("DefaultConnection")!;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; public async Task&amp;lt;IEnumerable&amp;lt;Student&amp;gt;&amp;gt; GetAllStudentsAsync()
 {
     try
     {
         var students = new List&amp;lt;Student&amp;gt;();
         using var connection = new SqlConnection(connectionString);
         using var command = new SqlCommand("[GetAllStudent]", connection)
         {
             CommandType = System.Data.CommandType.StoredProcedure,
         };
         await connection.OpenAsync();
         using var reader = await command.ExecuteReaderAsync();
         while (reader.Read())
         {
             Student student = new Student();
             {
                 student.StudentID = reader.GetInt32(reader.GetOrdinal("StudentID"));
                 student.StudentName = reader.GetString(reader.GetOrdinal("StudentName"));
                 student.Email = reader.GetString(reader.GetOrdinal("Email"));
                 student.Phone = reader.GetString(reader.GetOrdinal("Phone"));
                 student.Gender = reader.GetString(reader.GetOrdinal("Gender"));
                 student.Address = reader.GetString(reader.GetOrdinal("Address"));
                 student.Rank = reader.GetDecimal(reader.GetOrdinal("Rank"));
                 student.DOB = reader.GetDateTime(reader.GetOrdinal("DOB"));
                 student.CourseID = reader.GetInt32(reader.GetOrdinal("CourseID"));
                 student.CourseName = reader.GetString(reader.GetOrdinal("CourseName"));

             }
             ;
             students.Add(student);
         }
         return students;
     }
     catch (Exception ex)
     { 
         throw new Exception($"error retrirving Student: {ex.Message}", ex);
     }

 }
 public async Task&amp;lt;Student&amp;gt; GetStudentByIDAsync(int id)
 {
     try
     {

         using var connection = new SqlConnection(connectionString);
         using var command = new SqlCommand("[GetstudentbyID]", connection)
         {
             CommandType = System.Data.CommandType.StoredProcedure
         };
         command.Parameters.AddWithValue("@StudentID", id);
         await connection.OpenAsync();
         using var reader = await command.ExecuteReaderAsync();
         Student std = new Student();
         while (await reader.ReadAsync())
         {
             Student student = new Student();
             {
                 student.StudentID = reader.GetInt32(reader.GetOrdinal("StudentID"));
                 student.StudentName = reader.GetString(reader.GetOrdinal("StudentName"));
                 student.Email = reader.GetString(reader.GetOrdinal("Email"));
                 student.Phone = reader.GetString(reader.GetOrdinal("Phone"));
                 student.Gender = reader.GetString(reader.GetOrdinal("Gender"));
                 student.Address = reader.GetString(reader.GetOrdinal("Address"));
                 student.Rank = reader.GetDecimal(reader.GetOrdinal("Rank"));
                 student.DOB = reader.GetDateTime(reader.GetOrdinal("DOB"));
                 student.CourseID = reader.GetInt32(reader.GetOrdinal("CourseID"));
                 student.CourseName = reader.GetString(reader.GetOrdinal("CourseName"));
             }
             ;
             std = student;
         }
         return std;
     }
     catch (Exception ex)
     {
         throw new Exception($"Error Get student: {ex.Message}", ex);
     }
 }

 public async Task&amp;lt;int&amp;gt; AddStudentAsync(Student student)
 {
     try
     {
         using var connection = new SqlConnection(connectionString);
         using var command = new SqlCommand("[SaveStudent]", connection)
         {
             CommandType = System.Data.CommandType.StoredProcedure
         };

         command.Parameters.AddWithValue("@StudentID", student.StudentID);
         command.Parameters.AddWithValue("@StudentName", student.StudentName);
         command.Parameters.AddWithValue("@Email", student.Email);
         command.Parameters.AddWithValue("@Phone", student.Phone);
         command.Parameters.AddWithValue("@Gender", student.Gender);
         command.Parameters.AddWithValue("@Address", student.Address);
         command.Parameters.AddWithValue("@Rank", student.Rank);
         command.Parameters.AddWithValue("@DOB", student.DOB);
         command.Parameters.AddWithValue("@CourseID", student.CourseID);
         await connection.OpenAsync();
         var result = await command.ExecuteNonQueryAsync();
         return result;

     }
     catch (Exception ex)
     {
         throw new Exception($"Erro Add Student: {ex.Message}", ex);
     }

 }`
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ol&gt;
&lt;li&gt;RESTful API Presentation Layer (Controller.cs)
Expose the endpoints using attributes routing so that front-end modern frameworks can interact safely via HTTP request methods.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;` public class StudentController(IStudentService _studentService) : ControllerBase&lt;br&gt;
 {&lt;br&gt;
     [HttpGet("student")]&lt;br&gt;
     public async Task GetAllStudents()&lt;br&gt;
     {&lt;br&gt;
         try&lt;br&gt;
         {&lt;br&gt;
             var students = await _studentService.GetAllStudentsAsync();&lt;br&gt;
             return Ok(students);&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;     }
     catch (Exception ex)
     {
         return BadRequest(ex.Message);
     }

 }

 [HttpGet("{id:int}")]
 public async Task&amp;lt;IActionResult&amp;gt; GetStudentbyID(int id)
 {
     var student = await _studentService.GetStudentByIDAsync(id);
     if (student == null)
     {
         return NotFound($"Student With Id {id} not found");
     }
     return Ok(student);
 }

 [HttpPost]
 public async Task&amp;lt;IActionResult&amp;gt; AddStudent([FromBody] Student student)
 {
     var result = await _studentService.AddStudentAsync(student);
     return Ok(result);

 }
 [HttpPut("{id}")]
 public async Task&amp;lt;IActionResult&amp;gt; UpdateStudent(int id, [FromBody] Student student)
 {
     var result = await _studentService.UpdateStudentAsync(student);
     return NoContent();
 }

 [HttpDelete("{id:int}")]

 public async Task &amp;lt;IActionResult&amp;gt; DeleteStudent(int id)
 {
     var result = await _studentService.DeleteStudentAsync(id);
     return NoContent();
 }`
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ol&gt;
&lt;li&gt;Dependency Injection &amp;amp; Service Registration (Program.cs)
Register the custom domain services and open global Cross-Origin Resource Sharing (CORS) rules to enable decoupling integrations.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;code&gt;// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle&lt;br&gt;
builder.Services.AddEndpointsApiExplorer();&lt;br&gt;
builder.Services.AddSwaggerGen();&lt;br&gt;
_builder.Services.AddScoped&amp;lt;IStudentService,StudentService&amp;gt;();_&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;`// Configure the HTTP request pipeline.&lt;br&gt;
if (app.Environment.IsDevelopment())&lt;br&gt;
{&lt;br&gt;
    app.UseSwagger();&lt;br&gt;
    app.UseSwaggerUI();&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;&lt;em&gt;app.UseCors(builder =&amp;gt;&lt;br&gt;
    builder.AllowAnyOrigin()&lt;br&gt;
           .AllowAnyMethod()&lt;br&gt;
           .AllowAnyHeader());&lt;/em&gt;&lt;br&gt;
`&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>dotnet</category>
      <category>softwaredevelopment</category>
    </item>
    <item>
      <title>How to setup React fetching and Context API with Axios mesCode</title>
      <dc:creator>mesCode</dc:creator>
      <pubDate>Thu, 16 Jul 2026 05:03:52 +0000</pubDate>
      <link>https://dev.to/mescode77/how-to-setup-react-fetching-and-context-api-with-axios-mescode-12d1</link>
      <guid>https://dev.to/mescode77/how-to-setup-react-fetching-and-context-api-with-axios-mescode-12d1</guid>
      <description>&lt;p&gt;In this guide, we are configuring the basic React flow.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;You need Node.js installed on your system.
&lt;strong&gt;node -v&lt;/strong&gt; (Check if you have it by running)
If it is not installed, download it from the Official Node.js &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;2.Run the initialization command to create&lt;br&gt;
*&lt;em&gt;npm create vite@latest my-react-app -- --template react&lt;br&gt;
*&lt;/em&gt;(Replace my-react-app with your preferred project name)&lt;/p&gt;

&lt;p&gt;3.Move into your new project directory and install the required packages&lt;br&gt;
&lt;code&gt;cd my-react-app&lt;br&gt;
npm install&lt;/code&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Launch your local live-reload development server 
&lt;code&gt;npm run dev
&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;place and see this example
`import { useState, useEffect } from 'react';
import './App.css';&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;const API_BASE_URL = "&lt;a href="https://localhost:7278/api/Student" rel="noopener noreferrer"&gt;https://localhost:7278/api/Student&lt;/a&gt;"; &lt;/p&gt;

&lt;p&gt;function App() {&lt;br&gt;
  const [students, setStudents] = useState([]);&lt;br&gt;
  const [courses, setCourses] = useState([]);&lt;/p&gt;

&lt;p&gt;const [studentID, setStudentID] = useState(0);&lt;br&gt;
  const [studentName, setStudentName] = useState("");&lt;br&gt;
  const [email, setEmail] = useState("");&lt;br&gt;
  const [phone, setPhone] = useState("");&lt;br&gt;
  const [gender, setGender] = useState("Male");&lt;br&gt;
  const [address, setAddress] = useState("");&lt;br&gt;
  const [rank, setRank] = useState(0);&lt;br&gt;
  const [dob, setDob] = useState("");&lt;br&gt;
  const [courseID, setCourseID] = useState("");&lt;/p&gt;

&lt;p&gt;const [isEditing, setIsEditing] = useState(false);&lt;/p&gt;

&lt;p&gt;useEffect(() =&amp;gt; {&lt;br&gt;
    fetchStudents();&lt;br&gt;
    fetchCourses();&lt;br&gt;
  }, []);&lt;/p&gt;

&lt;p&gt;async function fetchStudents() {&lt;br&gt;
    try {&lt;br&gt;
      const response = await fetch(&lt;code&gt;${API_BASE_URL}/student&lt;/code&gt;);&lt;br&gt;
      if (response.ok) {&lt;br&gt;
        const data = await response.json();&lt;br&gt;
        setStudents(data);&lt;br&gt;
      }&lt;br&gt;
    } catch (error) {&lt;br&gt;
      console.error("Error fetching students:", error);&lt;br&gt;
    }&lt;br&gt;
  }&lt;/p&gt;

&lt;p&gt;async function fetchCourses() {&lt;br&gt;
    try {&lt;br&gt;
      const response = await fetch(&lt;code&gt;${API_BASE_URL}/course&lt;/code&gt;);&lt;br&gt;
      if (response.ok) {&lt;br&gt;
        const data = await response.json();&lt;br&gt;
        setCourses(data);&lt;br&gt;
        if (data.length &amp;gt; 0 &amp;amp;&amp;amp; !courseID) {&lt;br&gt;
          setCourseID(data[0].courseID); &lt;br&gt;
        }&lt;br&gt;
      }&lt;br&gt;
    } catch (error) {&lt;br&gt;
      console.error("Error fetching courses:", error);&lt;br&gt;
    }&lt;br&gt;
  }&lt;/p&gt;

&lt;p&gt;async function handleSubmit(e) {&lt;br&gt;
    debugger;&lt;br&gt;
    e.preventDefault();&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if (!studentName || !email || !courseID) {
  alert("Please Fill the Requred Fields (Name, Email, Course)!!");
  return;
}

const studentPayload = {
  studentID: isEditing ? studentID : 0,
  studentName: studentName,
  email: email,
  phone: phone,
  gender: gender,
  address: address,
  rank: parseFloat(rank),
  dob: dob ? new Date(dob).toISOString() : new Date().toISOString(),
  courseID: parseInt(courseID)
};

try {
  let response;
  if (isEditing) {
    response = await fetch(`${API_BASE_URL}/${studentID}`, {
      method: 'PUT',
      headers: { 'Content-Type': 'application/json' },
      body: JSON.stringify(studentPayload)
    });
  } else {
    response = await fetch(API_BASE_URL, {
      method: 'POST',
      headers: { 'Content-Type': 'application/json' },
      body: JSON.stringify(studentPayload)
    });
  }

  if (response.ok) {
    fetchStudents(); 
    clearForm();
  } else {
    const errMsg = await response.text();
    alert("Error: " + errMsg);
  }
} catch (error) {
  console.error("Submit error:", error);
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;}&lt;/p&gt;

&lt;p&gt;function handleEdit(student) {&lt;br&gt;
    setIsEditing(true);&lt;br&gt;
    setStudentID(student.studentID);&lt;br&gt;
    setStudentName(student.studentName);&lt;br&gt;
    setEmail(student.email);&lt;br&gt;
    setPhone(student.phone);&lt;br&gt;
    setGender(student.gender);&lt;br&gt;
    setAddress(student.address);&lt;br&gt;
    setRank(student.rank);&lt;br&gt;
    setDob(student.dob ? student.dob.split('T')[0] : "");&lt;br&gt;
    setCourseID(student.courseID);&lt;br&gt;
  }&lt;/p&gt;

&lt;p&gt;async function handleDelete(id) {&lt;br&gt;
    if (window.confirm("Are You Sure??")) {&lt;br&gt;
      try {&lt;br&gt;
        const response = await fetch(&lt;code&gt;${API_BASE_URL}/${id}&lt;/code&gt;, {&lt;br&gt;
          method: 'DELETE'&lt;br&gt;
        });&lt;br&gt;
        if (response.ok) {&lt;br&gt;
          fetchStudents();&lt;br&gt;
        }&lt;br&gt;
      } catch (error) {&lt;br&gt;
        console.error("Delete error:", error);&lt;br&gt;
      }&lt;br&gt;
    }&lt;br&gt;
  }&lt;/p&gt;

&lt;p&gt;function clearForm() {&lt;br&gt;
    setIsEditing(false);&lt;br&gt;
    setStudentID(0);&lt;br&gt;
    setStudentName("");&lt;br&gt;
    setEmail("");&lt;br&gt;
    setPhone("");&lt;br&gt;
    setGender("Male");&lt;br&gt;
    setAddress("");&lt;br&gt;
    setRank(0);&lt;br&gt;
    setDob("");&lt;br&gt;
    if (courses.length &amp;gt; 0) setCourseID(courses[0].courseID);&lt;br&gt;
  }&lt;/p&gt;

&lt;p&gt;return (&lt;br&gt;
    &lt;/p&gt;
&lt;br&gt;
      &lt;h2&gt;Student Management System (CRUD)&lt;/h2&gt;


&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  {/* --- FORM SECTION --- */}
  &amp;lt;form onSubmit={handleSubmit} style={{ border: '1px solid #ccc', padding: '20px', borderRadius: '8px', marginBottom: '30px', display: 'grid', gridTemplateColumns: '1fr 1fr', gap: '15px' }}&amp;gt;
    &amp;lt;h3 style={{ gridColumn: 'span 2', margin: '0 0 10px 0' }}&amp;gt;{isEditing ? "✏️ Edit Student Details" : "➕ Register New Student"}&amp;lt;/h3&amp;gt;

    &amp;lt;div&amp;gt;
      &amp;lt;label&amp;gt;Student Name *&amp;lt;/label&amp;gt;
      &amp;lt;input type="text" value={studentName} onChange={(e) =&amp;gt; setStudentName(e.target.value)} style={{ width: '100%', padding: '8px', marginTop: '5px' }} /&amp;gt;
    &amp;lt;/div&amp;gt;

    &amp;lt;div&amp;gt;
      &amp;lt;label&amp;gt;Email Address *&amp;lt;/label&amp;gt;
      &amp;lt;input type="email" value={email} onChange={(e) =&amp;gt; setEmail(e.target.value)} style={{ width: '100%', padding: '8px', marginTop: '5px' }} /&amp;gt;
    &amp;lt;/div&amp;gt;

    &amp;lt;div&amp;gt;
      &amp;lt;label&amp;gt;Phone Number&amp;lt;/label&amp;gt;
      &amp;lt;input type="text" value={phone} onChange={(e) =&amp;gt; setPhone(e.target.value)} style={{ width: '100%', padding: '8px', marginTop: '5px' }} /&amp;gt;
    &amp;lt;/div&amp;gt;

    &amp;lt;div&amp;gt;
      &amp;lt;label&amp;gt;Gender&amp;lt;/label&amp;gt;
      &amp;lt;select value={gender} onChange={(e) =&amp;gt; setGender(e.target.value)} style={{ width: '100%', padding: '8px', marginTop: '5px' }}&amp;gt;
        &amp;lt;option value="Male"&amp;gt;Male&amp;lt;/option&amp;gt;
        &amp;lt;option value="Female"&amp;gt;Female&amp;lt;/option&amp;gt;
      &amp;lt;/select&amp;gt;
    &amp;lt;/div&amp;gt;

    &amp;lt;div&amp;gt;
      &amp;lt;label&amp;gt;Date of Birth&amp;lt;/label&amp;gt;
      &amp;lt;input type="date" value={dob} onChange={(e) =&amp;gt; setDob(e.target.value)} style={{ width: '100%', padding: '8px', marginTop: '5px' }} /&amp;gt;
    &amp;lt;/div&amp;gt;

    &amp;lt;div&amp;gt;
      &amp;lt;label&amp;gt;Rank / Marks&amp;lt;/label&amp;gt;
      &amp;lt;input type="number" step="0.01" value={rank} onChange={(e) =&amp;gt; setRank(e.target.value)} style={{ width: '100%', padding: '8px', marginTop: '5px' }} /&amp;gt;
    &amp;lt;/div&amp;gt;

    &amp;lt;div&amp;gt;
      &amp;lt;label&amp;gt;Select Course *&amp;lt;/label&amp;gt;
      &amp;lt;select 
        value={courseID} 
        onChange={(e) =&amp;gt; setCourseID(e.target.value)} 
        style={{ width: '100%', padding: '8px', marginTop: '5px', backgroundColor: '#968206', border: '1px solid rgb(19, 19, 15)' }}
      &amp;gt;
        &amp;lt;option value=""&amp;gt;-- Choose Course --&amp;lt;/option&amp;gt;
        {courses.map((course) =&amp;gt; (
          &amp;lt;option key={course.courseID} value={course.courseID}&amp;gt;
            {course.courseName}
          &amp;lt;/option&amp;gt;
        ))}
      &amp;lt;/select&amp;gt;
    &amp;lt;/div&amp;gt;

    &amp;lt;div style={{ gridColumn: 'span 2' }}&amp;gt;
      &amp;lt;label&amp;gt;Address&amp;lt;/label&amp;gt;
      &amp;lt;textarea value={address} onChange={(e) =&amp;gt; setAddress(e.target.value)} style={{ width: '100%', padding: '8px', marginTop: '5px', height: '60px' }}&amp;gt;&amp;lt;/textarea&amp;gt;
    &amp;lt;/div&amp;gt;

    &amp;lt;div style={{ gridColumn: 'span 2', marginTop: '10px' }}&amp;gt;
      &amp;lt;button type="submit" style={{ padding: '10px 20px', backgroundColor: '#28a745', color: '#fff', border: 'none', cursor: 'pointer', borderRadius: '4px' }}&amp;gt;
        {isEditing ? "Update Student" : "Register Student"}
      &amp;lt;/button&amp;gt;
      {isEditing &amp;amp;&amp;amp; (
        &amp;lt;button type="button" onClick={clearForm} style={{ marginLeft: '10px', padding: '10px 20px', backgroundColor: '#6c757d', color: '#fff', border: 'none', cursor: 'pointer', borderRadius: '4px' }}&amp;gt;
          Cancel
        &amp;lt;/button&amp;gt;
      )}
    &amp;lt;/div&amp;gt;
  &amp;lt;/form&amp;gt;

  {/* --- TABLE SECTION --- */}
  &amp;lt;h3&amp;gt;Registered Students&amp;lt;/h3&amp;gt;
  &amp;lt;table border="1" cellPadding="10" style={{ width: '100%', borderCollapse: 'collapse', textAlign: 'left' }}&amp;gt;
    &amp;lt;thead&amp;gt;
      &amp;lt;tr style={{ backgroundColor: '#f8f9fa' }}&amp;gt;
        &amp;lt;th&amp;gt;ID&amp;lt;/th&amp;gt;
        &amp;lt;th&amp;gt;Name&amp;lt;/th&amp;gt;
        &amp;lt;th&amp;gt;Email&amp;lt;/th&amp;gt;
        &amp;lt;th&amp;gt;Phone&amp;lt;/th&amp;gt;
        &amp;lt;th&amp;gt;Address&amp;lt;/th&amp;gt;
        &amp;lt;th&amp;gt;Gender&amp;lt;/th&amp;gt;
        &amp;lt;th&amp;gt;Course&amp;lt;/th&amp;gt;
        &amp;lt;th&amp;gt;Rank&amp;lt;/th&amp;gt;
        &amp;lt;th&amp;gt;Actions&amp;lt;/th&amp;gt;
      &amp;lt;/tr&amp;gt;
    &amp;lt;/thead&amp;gt;
    &amp;lt;tbody&amp;gt;
      {students.length &amp;gt; 0 ? (
        students.map((student) =&amp;gt; (
          &amp;lt;tr key={student.studentID}&amp;gt;
            &amp;lt;td&amp;gt;{student.studentID}&amp;lt;/td&amp;gt;
            &amp;lt;td&amp;gt;{student.studentName}&amp;lt;/td&amp;gt;
            &amp;lt;td&amp;gt;{student.email}&amp;lt;/td&amp;gt;
            &amp;lt;td&amp;gt;{student.phone}&amp;lt;/td&amp;gt;
            &amp;lt;td&amp;gt;{student.address}&amp;lt;/td&amp;gt;
            &amp;lt;td&amp;gt;{student.gender}&amp;lt;/td&amp;gt;
            &amp;lt;td style={{ fontWeight: 'bold', color: '#0056b3' }}&amp;gt;{student.courseName}&amp;lt;/td&amp;gt;
            &amp;lt;td&amp;gt;{student.rank}&amp;lt;/td&amp;gt;
            &amp;lt;td&amp;gt;
              &amp;lt;button onClick={() =&amp;gt; handleEdit(student)} style={{ marginRight: '5px', backgroundColor: '#ffc107', border: 'none', padding: '5px 10px', cursor: 'pointer' }}&amp;gt;Edit&amp;lt;/button&amp;gt;
              &amp;lt;button onClick={() =&amp;gt; handleDelete(student.studentID)} style={{ backgroundColor: '#dc3545', color: '#fff', border: 'none', padding: '5px 10px', cursor: 'pointer' }}&amp;gt;Delete&amp;lt;/button&amp;gt;
            &amp;lt;/td&amp;gt;
          &amp;lt;/tr&amp;gt;
        ))
      ) : (
        &amp;lt;tr&amp;gt;
          &amp;lt;td colSpan="7" style={{ textAlign: 'center' }}&amp;gt;No students registered yet.&amp;lt;/td&amp;gt;
        &amp;lt;/tr&amp;gt;
      )}
    &amp;lt;/tbody&amp;gt;
  &amp;lt;/table&amp;gt;
&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;);&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;export default App;`&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>tutorial</category>
      <category>api</category>
      <category>react</category>
    </item>
  </channel>
</rss>
