From 5b2ed4679bfe7c1b4193fe28af9f4aa6bf96f0f0 Mon Sep 17 00:00:00 2001 From: Aadhavan Date: Thu, 4 Apr 2024 21:13:02 +0530 Subject: [PATCH] about us page restructure --- docs/about.md | 43 +++++++++++++++++++++++++++++++++++-------- 1 file changed, 35 insertions(+), 8 deletions(-) diff --git a/docs/about.md b/docs/about.md index 5a06bb4..b1fdd2d 100644 --- a/docs/about.md +++ b/docs/about.md @@ -19,6 +19,7 @@ const members = [ { icon: 'linkedin', link: 'https://aadhii.in/' } ] }, + // add more here ] @@ -26,23 +27,49 @@ const members = [ ## Overview -eXpServer is an educational web server built entirely in C language, designed to aid students in understanding the inner workings of web servers through the implementation of one from scratch using Linux socket programming APIs. +The eXpServer project is an educational web server implementation built entirely in the C language. It is designed to help individuals understand the inner workings of web servers by guiding them through the process of building one from scratch using Linux socket programming APIs. -The project is structured to be offered as an undergraduate Networks Lab course for Computer Science and Engineering courses in colleges. Through a carefully crafted ‘Roadmap’, students are systematically guided through various stages, each addressing specific objectives. This incremental learning approach helps students keep track of where they are in terms of course progression while also enabling instructors to assess their development against predefined milestones. +### Intended audience -In the early stages of the roadmap, much of the code is directly provided to the student. However, as the stages progress most of the code is to be written by the students themselves with the documentation outlining the requirements that the functions and modules should meet. The intention behind this approach is to gently ease the learning curve, thereby facilitating the student's initial engagement with the project. As they progress, the aim is to foster independent critical thinking, encouraging students to devise their own solutions rather than relying solely on the documentation to guide them. +The project is structured to be offered as an undergraduate Networks Lab course for Computer Science and Engineering programs in universities and colleges. It is ideal for students pursuing a Computer Science degree, particularly those who are currently enrolled or have previously enrolled in a networking theory course. -Having an understanding of basic networking concepts such as, client server model, TCP/IP protocol stack, OSI model etc. is a good starting point. Most of the concepts associated with building eXpServer are explained in enough detail through guides available in the documentation. These guides are linked from appropriate parts of the roadmap to explain the concept related to the stage the student is currently in. Links to external resources that further explain the concepts are also included for extended reading. +The implementation of the project is well-suited for a single semester of a Networks laboratory course or as a programming assignment associated with an undergraduate Networks theory course. -Upon completing the project, we will have crafted a fully functional web server compatible with various Linux distributions. eXpServer will possess a range of capabilities, including serving static files, reverse proxying requests, load balancing, performing gzip compression, implementing caching mechanisms, rate limiting requests, supporting TLS encryption and so on. Notably, the server will maintain high performance standards, efficiently handling numerous requests by utilising multiple CPU cores. +Furthermore, individuals interested in understanding the workings of web servers and eager to implement one themselves are welcome to undertake this project. -This project provides students with practical experience in understanding the architecture of modern web servers tasked with managing immense internet traffic. Through hands-on engagement with eXpServer development, students gain insight into the complexities of efficiently handling dynamic web traffic, preparing them for real-world challenges faced in the industry. +### Prerequisites + +Since eXpServer will be written entirely in C, the primary prerequisite is a familiarity with the C programming language at the level of a junior year undergraduate CS student. + +Having an understanding of basic networking concepts such as, client server model, TCP/IP protocol stack, OSI model etc. may be beneficial, but is not necessary. + +Most of the concepts associated with building eXpServer are explained in enough detail through guides available in the documentation. These guides are linked from appropriate parts of the roadmap to explain the concept related to the stage the student is currently in. Links to external resources that further explain the concepts are also included for extended reading. + +### What to expect + +Participants in the eXpServer project can anticipate a thorough learning journey centred on constructing an operational web server from scratch. They will gain a deep understanding of networking fundamentals, encompassing the client-server model, TCP/IP protocol stack, OSI model, and diverse networking protocols, all through practical implementation and experimentation. Additional areas of learning encompass C programming, Linux system programming, problem-solving, critical thinking, and the software development cycle. + +A structured [roadmap](/roadmap/) guides individuals through various stages, systematically addressing specific objectives. This incremental learning approach helps them keep track of where they are in terms of course progression while also enabling instructors to assess their development against predefined milestones. + +Upon completing the project, the individual will have crafted a functional web server compatible with various Linux distributions. + +eXpServer will incorporate a range of features, including but not limited to: + +- Serving static files +- Reverse proxy functionality +- Load balancing capabilities +- Gzip compression +- Implementing caching mechanisms +- Rate limiting for requests +- TLS support + +This project provides individuals with practical experience in understanding the architecture of modern web servers. Through hands-on engagement with eXpServer development, individuals gain insight into the complexities of handling dynamic web traffic, preparing them for real-world challenges faced in the industry. ## Authors - +The content in the website and the documentation has been authored in the [Department of Computer Science and Engineering](https://minerva.nitc.ac.in/), [National Institute of Technology Calicut](http://nitc.ac.in/) under the guidance of [Dr. Murali Krishnan K](https://nitc.ac.in/department/computer-science-amp-engineering/faculty-and-staff/faculty/bdb94a31-f29a-4fb0-b4d5-7db9be64edef) and [Dr. Vinod Pathari](https://nitc.ac.in/department/computer-science-amp-engineering/faculty-and-staff/faculty/f6ebabe0-ef35-4efd-964a-59325844b7c5). -Developed under the guidance of [Dr. Vinod Pathari](https://nitc.ac.in/department/computer-science-amp-engineering/faculty-and-staff/faculty/f6ebabe0-ef35-4efd-964a-59325844b7c5) and [Dr. Murali Krishnan K](https://nitc.ac.in/department/computer-science-amp-engineering/faculty-and-staff/faculty/bdb94a31-f29a-4fb0-b4d5-7db9be64edef) of National Institute of Technology Calicut. + ## License