FacebookTwitterLinkedIn

English translation by ChatGPT

Ahmed Zayed 1/1/1/1 قصة المواقع الإلكترونية منذ البدايةAhmed Zayed 1/1/1/1 قصة المواقع الإلكترونية منذ البداية

Course

دورة تدريبية

1/1/1/1 قصة المواقع الإلكترونية منذ البداية

تطوير المواقع الإلكترونية MEAN-Stack from A to Z مقدمة: صناعة المواقع الإلكترونية Level1

حاول الإنسان طوال تاريخه أن يطور الألات التي تساعده لتأدية المهام المختلفة و لم تتوقف محاولاته علي الأدوات التي تساعده يدويا فقط و لكن كان دائما ما يسعي لتطوير الات تساعده في حل مشكلاته الحسابية و المنطقية و استطاع الوصول لذلك عندما قام بإختراع أجهزة الحاسبات الألية و خاصة عندما استطاع العالم الإنجلزي ألان تورينج إختراع جهازه في أربعينيات القرن الماضي الذي يعتبر أول جهاز كمبيوتر بالمعني الحديث ليمكن الحلفاء من فك رموز ألة إنيجما الألمانية التي كانت تستخدم لتشفير الإتصالات , و من وقتها و العالم يشهد طفرات متتالية في تكنولوجيا الحواسيب الإلكترونية و تكنولوجيا المعلومات سواء كانت بتطور الأجهزة و قدراتها أو تطور لغات البرمجة التي تقوم بكتابة أنظمة التشغيل و التطبيقات المختلفة للتحكم في تلك الأجهزة و الإستفادة منها و أيضا كتابة التطبيقات التي تقوم بإدارة الشبكات الرابطة لتلك الأجهزة حول العالم لتستطيع تبادل المعلومات فيما بينها.

لغة البرمجة: عبارة عن مجموعة القواعد التي تحدد طريقة كتابة أوامر بنمط معين ينفذها جهاز الكمبيوتر لتنفيذ مهمة محددة.

تعتمد اجهزة الكمبوتر علي نظام العد الثنائي حيث يتم تحويل كافة المعطيات إلي كود مكون من رقمي 0 و 1 حيث تعتبر تلك اللغة هي اللغة التي يفهمها الكمبيوتر و لذلك سميت لغة الألة Machine Language و لكن تعتبر لغة صعبة جدا علي الفهم البشري و كتابة البرامج بإستخدام تلك اللغة يحتاج إلي الكثير من المجهود و الوقت , لذلك ظهرت محاولات عدة لإختراع لغات برمجة جديدة تكون أقرب للغات البشرية يستطيع مبرمجين أجهزة الكمبيوتر إستخدامها بسهولة أكبر لتكون:
  • سهلة الإستخدام
  • توفر الوقت
  • غير معقدة لتقليل الأخطاء
  • سهلة إكتشاف أخطاء الكود و تصحيحها
  • و كلما اقتربت لغة البرمجة من اللغة البشرية أطلق عليها High Level Language

كيف بدأت المواقع الإلكترونية؟

مع إحتدام الحرب الباردة في القرن الماضي و التلويح بخطر الحرب النووية كانت الدول المتنافسة تسعي للوصول لتقنيات تمكنها من جعل مراكز التحكم و السيطرة العسكرية المختلفة من التواصل فيما بيها للتغلب علي مركزية اتخاذ القرارت حتي لا يحدث شلل لكل المراكز عند توجيه هجمة نووية إلى المركز الرئيسي و كانت المشكلة هي كيف يتم ربط أجهزة الكمبيوتر التي تتحكم في تلك المراكز بعضها ببعض و بالفعل استطاعت و كالة DARPA التابعة لوزراة الدفاع الأمريكية من تطوير تقنية تمكنهم من ذلك و قاموا بإختراع شبكة ARPA لتكون أول شبكة تربط بين أجهزة الكمبيوتر و بعدها تم إستخدام تلك التقنيات لربط الجامعات و مراكز الأبحاث بعضها ببعض و لاحقا الشركات الكبري لتبادل المعلومات المالية و إستمرت التطويرات حتي ظهرت بشبكة الإنترنت كما نعرفها اليوم.

و في عام1990 تم إنشاء اول موقع إلكتروني و كان عبارة عن مجموعة من النصوص بدون واجهة مستخدم و في عام 1992 بدأت تحتوي المواقع علي الصور و في عام 1993 ظهر أول متصفخ و كان يسمي Mosaic و كان يدعم النصوص و الصور , و في عام 1994 كانت الثورة الحقيقية عندما ظهر أول متصفح بالمعني الحديث و كان يسمي نتسكيب Netscape و الذي كان يدعم النصوص و الصور و الصور المتحركة GIFs و في عام 1995 ظهرت لغة الترميز الخاصة بالمواقع HTML و ظهرت أيضا لغة الـ JavaScript التي يتم إختصارها لـ JS و هذه اللغة تحديدا هي بطلة قصتنا و في عام 1996 ظهرت لغة التنسيق الخاصة بالويب CSS لتتحول المواقع الإلكترونية للشكل الذي نعرفه الأن.

طفرة أخري ظهرت في عام 2003 عندنا ظهرت منصة إدارة المحتوي WordPress و بدأت المواقع الإلكترونية الديناميكية في الإنتشار و التي يتغير محتواها بسهولة عن طريق مدير الموقع و ليست بحاجة إلى مطور برمجيات لتعديل كود الموقع في كل مرة يريد صاحب الموقع تغيير محتواه لتبدأ صناعة برمجيات و تطبيقات الويب تتغير لتظهر تقسيمات لأجزاء المواقع الإلكترونية و تظهر تخصصات مختلفة للعاملين في مجال تصميم و تطوير و إدارة المواقع الإلكترونية.

ما هي أجزاء و مكونات المواقع الإلكترونية؟

  • الـ Back-end

    و يتكون من 3 أجزاءفي العادة (يمكن أن يتكون من أجزاء أخري أو أجزاء أقل تبعا للغرض منه و لكن غالبا ما يتكون من تلك الأجزاء)

    1. التطبيق الذي يقوم بإجراء العمليات المختلفة علي البيانات الواردة من المستخدم تبعا لطبيعة التطبيق و المطلوب منه و يقوم بتسجيل المعلومات و البيانات داخل قاعدة البيانات أو البحث و إستجلاب البيانات من قاعدة البيانات و إجراء العمليات المختلفة عليها و تزويد المستخدم بها أو التعديل عليها , أيضا يمكن لذلك التطبيق العمل منفردا دون قاعدة بيانات حيث يقوم بأدوار اخري مثل حفظ الملفات التي يقوم المستخدم برفعها و إجارء العلميات الحسابية و المنطقية اللازمة لتحقيق الهدف من صناعته
    2. قاعدة البيانات التي تقوم بحفظ البيانات و تنظيمها لعرضها علي المستخدم عند الحاجة (بعض المشروعات البسيطة ليست في حاجة لوجود قاعدة بيانات)
    3. الـ APIs (application programming interface) و هو الجزء البرمجي الذي يقوم بربط التطبيق مع ال front-end حيث يقوم ال front-end بإستدعائها و طلب منها البيانات لعرضها علي المستخدم أو استدعائها و تحميلها ببيانات من المستخدم لإجراء عليها المهام المطلوبة و إعادتها او تسجيلها في قاعدة البيانات او في ملفات السيرفر أو في أغلب الحالات تحميلها ببيانات معينة لتأتي ببيانات جديدة تبعا للبيانات المقدمة مثل بحث عن مستخدم بتاريخ ميلاد معين.

    تتكون كل API من أجزاء تسمي Endpoints تقوم كل واحدة منها بوظيفة في حالة البحث عن مستخدم بتاريخ ميلاد معين يتم استدعاء ال endpoint المختصة بتلك العملية و تمرير تاريخ الميلاد لها و استقبال المستخدم او المستخدمين المتوافق تاريخ ميلادهم مع تاريخ الميلاد محل البحث و يعتبر هذا المثال نموذج صغير لما يمكن لل APIs القيام به , الـ APIs هي عصب التكنولوجيا الحديثة فهي البرمجيات المسؤولة بربط التطبيقات التي يتعامل معها المستخدم علي اي وسط أو جهاز بالخوادم و ما تحتويه من برمجيات و قواعد بيانات حيث تقوم بربط الخوادم مع المواقع و تطبيقات الهواتف الذكية و تطبيقات الـ IOT (إنترنت الأشياء) و تطبيقات الروبوتات و المسيرات وإلي أخره من أجهزة و تطبيقات منتشرة في كل مكان حولنا , يمكن أن تكون ال API مشروعا منفصلا عن التطبيق الذي يحتوي علي الكود البرمجي اللازم للقيام بالعمليات المطلوبة في حالة التطبيقات كبيرة الحجم أو قد يكون تطبيق واحد يحتوي ال API مع التطبيق البرمجي في حالة المشروعات الصغيرة

  • واجهة المستخدم الـ Front-end

    و هو ذلك الجزء المرئي من الموقع الإلكتروني الذي يتعامل معه المستخدم يتبادل المعلومات عن طريقه و يحتوي علي صفحات ويب مثل صفحة تسجيل الدخول أو صفحة من نحن أو صفحة إتصل بنا و غيرها من الصفحات مهما كانت بسيطة و شائعة في كل المواقع مثل الصفحات المذكورة أو كانت شديدة التعقيد في مواقع مثل الصفحات الخاصة بالرسم أونلاين أو تحويل الأموال أو صفحات مواقع التواصل الإجتماعي بمختلف استخدامتها

    الـ front-end ممكن أن يكون الموقع الإلكتروني عبارة عن front-end فقط بدون أي اجزاء أخري في حالة كان الموقع صغيرا و محتواه غير متغير

meanstack-website-parts

أجزاء الموقع الإلكتروني

الـ Domain-name و الـ Hosting أيضا من أجزاء الموقع الإلكتروني غير البرمجية و لكن يجب علي كل مطور مواقع أن يعرفها هو الـ Domainname و هم عنوان الموقع الذي يكتبه المستخدم لفتح الموقع علي المتصفح مثل www.google.com أو www.facebook.com و غيرها و هو اسم لا يتكرر يتم شراءه من شركات متخصصة ببيع النطاقات فما هي أهميته و كيف يعمل؟ كل موقع يتم بناءه يتكون من ملفات يجب أن تحفظ تلك الملفات علي سيرفر Server و يحتوي كل سيرفر علي عدد من المواقع و كل جهاز سيرفر له عنوان تعريف IP معين يكون علي هذه الصورة 172.217.6.196 بالطبع استحالة ان يقوم شخص بحفظ تلك الأرقام و كتابتها في كل مرة يحتاج فيها تصفح موقع لذلك ظهرت الحاجة لوجود أسماء بسيطة سهلة التذكر تكتب بلغة بشرية عادية لإستخدامها في الوصول للمواقع و بذلك يحمل كل موقع اسم يشير إلى عنوان تعريفه و تقوم قواعد بيانات بربط تلك الأسماء بعنواينها تسمي DNS فحينما يقوم المستخدم بكتابة اسم الموقع في المتصفح يقوم المتصفح بطلب عنوان الموقع من ال DNS لتوصيل الزائر بالموقع المطلوب

لماذا يقسم الموقع لتلك الأقسام و لماذا يتم بناءه علي أكثر من جزء برمجي؟

للإجابة علي ذلك السؤال يجب علينا أن نجيب علي السؤال التالي فكيف يظهر الموقع للمستخدم و ماهي ألية عمله؟

عندما يكتب المستخدم عنوان الموقع في المتصفح يقوم المتصفح بالإتصال بالسيرفر و طلب الموقع و يقوم الـ server بإرسال الصفحة المطلوبة للموقع بصيغة html فمثلا لو طلب المستخدم صفحة about us يقوم السيرفر بإرسال صفحة about-us.html للمتصفح , قديما لبناء موقع معقد يتعامل مع قواعد البيانات و يحتوي علي تطبيقات تقوم بمهام علي البيانات و الملفات كان يحتوي السيرفر علي compiler و يقوم مطور المواقع بإنشاء الموقع بأحد اللغات البرمجية الخاصة بالويب مثل لغة ASP.NET بملفات تحمل امتداد .aspx أو PHP بإمتداد .php و كان السيرفر يحتوي علي ال compiler و مهمته هو القيام بالترجمة ما بين لغة البرمجة و بين السيرفر ليحول الملفات مثل .php أو .aspx إلي ملفات بإمتداد .html لترسل إلي المتصفح ليستطيع قرأتها فمثلا لو فرضنا أن صفحة ويب ما تقوم بعمل عملية جمع لرقمين يقوم المستخدم بإدخالهم في مربعي كتابة و من بعد يقوم بالضغط علي زر للقيام بعملية الجمع , في البداية يطلب المتصفح الصفحة فيقوم الـ compiler بتحول كود الـ php او الـ asp.net إلى رموز html عادية ليتمكن المتصفح من قرأتها و عرضها للمستخدم يقوم المستخدم بإدخال الأرقام المراد جمعها و الضغط على زر الجمع فيقوم المتصفح بإرسال الصفحة للسيرفر لإجراء العملية و من بعد يقوم الـ compiler بترجمة لغة البرمجة و إجراء العملية و إعادة إرسال الصفحة كاملة بعد ان يضيف لها الإجمالي, كانت تلك الطريقة لعمل المواقع التي تحتوي علي عمليات برمجية و بالطبع كان أداء المواقع سيء حيث يتم إعادة تحميل صفحة الموقع في كل مرة يتم فيها التفاعل بين الموقع و المستخدم لطلب بيانات او ادخال بيانات (لازالت تلك التقنيات تستخدم و العديد من المواقع تعمل بنفس الطريقة) , كانت لغة البرمجة ال JavaScript ظهرت في منتصف التسعينيات و كانت في البداية تستخدم لعمل بعض التأثيرات البصرية كأن يتم تحريك صورة في الخلفية أو تكبير صورة عند النقر عليها او المرور عليها بالمؤشر و الميزة الكبرى لتلك اللغة هي أنها تعمل علي مستوي المتصفح و لا تحتاج لتنفيذ اوامرها العودة للسيرفر مرة أخري فظهرت فكرة تطوير تلك الللغة للإستفادة من تلك الميزة فعند الإحتياج لعمل عمليات بسيطة لا تتعلق بالسيرفر يمكن إجرائها عن طريق ال JavaScript (JS) فمثلا في المثال السابق عندما يريد المستخدم جمع رقمين و هي عملية بسيطة و غير معقدة يمكن اجراءها بالـ JS و بذلك لن تحتاج الصفحة لإعادة التحميل مرة أخري (أيضا وقتها كانت سرعات الإنترنت ضعيفة جدا و إمكانيات الأجهزة سواء السيرفرات أو اجهزة المستخدمين متواضعة للغاية و كانت الصفحات يعاد تحميلها في وقت طويل) بذلك قامت الـ JS بحل جزء من المشكلة و لكن لايزال هناك مشكلة فمثلا اذا كانت العملية المراد تنفيذها تتعلق بقواعد البيانات او الملفات المسجلة في السيرفر فستظل الصفحات يعاد تحميلها و هنا قامت شركة جوجل بتطوير تقنية لإستخدامها في منتجاتها و قامت بعرضها لإستخدام المطورين تسمي AJAX و ببساطة تقوم علي الطلب من السيرفر تنفيذ مهمة ما من صفحة ما بدون ان يتم ارسال الصفحة كاملة الي السيرفر و اعادة تحميلها مرة اخري علي المتصفح و استخدمت تلك التقنية عن طريق لغة البرمجة ال JS و هو ما عزز استخدام تلك اللغة و جعل لها مستقبل للتطوير لتقوم بما هو اكثر من مجرد اعطاء شكل متحرك لصفحات المواقع و بعدها ظهرت الحاجة للفصل بين اجزاء الموقع المختلفة كما ذكرت من قبل.

إذا من يقوم بصناعة الموقع الإلكتروني؟

في المشروعات الكبيرة يقوم فرد أو مجموعة من الأفراد بالقيام بالمهام التالية:

تلك المهام و الوظائف هي أكثر المهام شيوعا و طلبا في الشركات و ليست بالضرورة أن تكون هي كل الوظائف المتعلقة بصناعة المواقع الإلكترونية و من الممكن الإستغناء عن بعضها في المشروعات الصغيرة أو التي ليست بحاجة لكامل أجزاء الموقع و أيضا من الممكن أن يقوم شخص واحد بعمل كل تلك المهام في حالة أن يكون المشروع أو الموقع صغير و لا يتطلب وقت و مجهود كبير في تنفيذه و أيضا أن يكون الشخص ملم بكل تلك الوظائف

طبيعة الوظيفة اسم الوظيفة المهمة المطلوبة الأدوات
تصميم تصميم واجهة المستخدم UI اختيار شكل الموقع و ألوانه و الخطوط المستخدمة و الصور و ألوان العناصر المختلفة. مواقع الرسم مثل الفوتوشوب HTML – CSS - JS
تصميم تجربة المستخدم UX تحديد أماكن و كيفية استخدام العناصر المختلفة فمثلا يقوم مصمم ال UI بتحديد مكان زر الشراء مثلا في موقع للتجارة الإلكترونية و يقوم مصمم ال UX بتحديد مكان الزر ليكون سهل علي المستخدم أن يجده و يستخدمه بسهولة. HTML – CSS – JS أيضا يقوم مصمم الـ UX بعمل اختبارات و استفتاءات و استخدام بعض أدوات التحليل الأخري و خاصة التسويقية لقياس جودة تصميم تجربة المستخدم
برمجة برمجة الـ front-end برمجة المهام التي تحدث علي نطاق المتصفح في جهاز المستخدم JS - HTML
تصميم و إنشاء و برمجة قواعد البيانات في المشروعات الصغيرة و المتوسطة قد يقوم شخص واحد او مجموعة من الأشخاص بالقيام عملية تصميم و إنشاء و برمجة قواعد البيانات و في المشروعات الكبيرة يقوم شخص أو مجموعة من الأشخاص بعمل كل مهمة من تلك المهام خصوصا كلما كان الموقع او تطبيق الويب معقد و متعدد المهام قواعد البيانات مثل MySql – MS SQL – MongoDB و غيرها من قواعد البييانات المختلفة و الأدوات المصاحبة و المتعلقة
برمجة الـ back-end برمجة المهام التي تحدث علي مستوي السيرفر و غالبا ما ترتبط بالتعامل مع قواعد البيانات او بالملفات الخاصة بالتطبيق و التي يتشاركها جميع المستخدمين اللغات و أطر العمل الخاصة ببرمجة ال back-end مثل لغة C# مع اطار العمل ASP.NET أو لغة JS مع بيئة تطوير Node JS
تأمين الموقع هناك الكثير من مهمات التأمين الخاصة بأي موقع منها من يحدث علي مستوي أكود الموقع و منها من يحدث علي السيرفر الخاص بالإستضافة أو قواعد البيانات و منها علي مستوي البيانات و هكذا و في المشروعات الكبيرة يكون هناك شخص أو عدة أشخاص متخصصين في كل مهمة من تلك المهام
إدارة السيرفر و الإستضافة و هي يتعلق بتظبيط اعدادات السيرفر و ملفات الموقع و ما يتعلق به من تطبيات لضمان عمل الموقع بكفاءة و بسرعة معرفة بإعدادات السيرفرات و الشبكات
تسويق رقمي تهيئة الموقع للعمل مع محركات البحث SEO أي كان الجهد المبذول في تطوير و تصميم و إنشاء الموقع فهو غير مرئي الا للزوار الذين يعرفون اسم النطاق الخاص به و في حالة عدم معرفة اسم النطاق يحتاج الزائر إلي البحث عن الموقع عن طريق محركات البحث و حتي يكون الموقع مهيئ للظهور يجب أن يتم إعداده و جعله متوافق لتلك المهمة و هي مهمة لها عدة أبعاد تهيئة اساسية يقوم بها مصمم الموقع و مطور الواجهة الأمامية front-end و بعد تسويي يقوم به شخص متخصص يتبع تخصص التسويق الرقمي HTML – CSS – JS (ليس بالضرورة أن يكون محترف تقنيا في تلك اللغات و لكن يجب عليه أن يكون ملم بفكرة عامة عنهم) في المواقع الصغيرة قد يقوم بتلك المهمة نفس الشخص
إدارة المحتوي عن طريق إنشاء مقاطع من المحتوى أو تعديل مقاطع أخري سواء كانت نصوص أو صور أو فيديو أو أي نوع أخر من المحتوى تبعا لطبيعة الموقع و الغرض منه و نوع المحتوى يتم التحكم في المحتوي عن طريق لوحة التحكم الخاصة به و التي يتم بنائها فهي تعتبر جزء من الواجهة الأمامية Front-end و لكن لا يستخدمه الا المستخدمين المصرح لهم و كل تبعا لصلاحياته
إدارة إدارة المستخدمين اضافة و تعديل و حذف المستخدمين و تعيين صلاحية كل مستخدم و كل مجموعة من المستخدمين لوحة التحكم الخاصة بالموقع

كما رأينا فإن المهام الخاصة بتطوير الموقع و قاعدة بياناته و تشغيله علي سيرفر الإستضافة و تأمينه قد يقوم بها شخص واحد و تسمي وظيفته full-stack developer و في أحوال كثيرة يقوم نفس الشخص أيضا بتصميم الموقع في حالة عدم توافر مصمم UI/UX أو كان المشروع ضغيرا و لا يحتمل دفع ثمن التصميم في الحقيقة فإن الذي يقوم بتلك الوظيفة يجب عليه أن يكون علي دراية كبيرة بالمهام التي ذكرتها و كيفية تنفيذها و بالطبع في أغلب الأحيان ليس المطلوب منه أن يكون محترفا في كل الوظائف و بنفس القدر و لكن أن يكون ملم بما يكفي لإنشاء المشروعات الصغيرة أو المتوسطة فبالطبع لن يستطيع شخص واحد القيام بكل تلك المهام بنفس القدر من الكفائة و التركيز و قد يكون متميز في بعض الجوانب أكثر من الجوانب الأخري.

1/1/1/1 The Story of Websites From the Beginning

Website Development MEAN-Stack from A to Z Introduction: Website Development Industry Level1

Throughout history, humans have worked to create tools that assist in performing various tasks. These attempts were not limited to tools that operate manually but extended to devices that solve mathematical and logical problems. This effort culminated in the invention of computers, particularly when the English scientist Alan Turing created his device in the 1940s, which is considered the first modern computer. It enabled the Allies to decrypt the German Enigma machine, which was used for encrypted communications. Since then, the world has witnessed successive advancements in computer and information technology, including enhancements in hardware capabilities, programming languages, and software applications. These advancements also paved the way for developing networks that connect computers worldwide to exchange information.

Programming Language: A set of rules defining how to write commands in a specific format that a computer executes to perform a particular task.

Computers rely on the binary system, converting all inputs into code composed of 0s and 1s. This language is known as Machine Language. However, writing programs using this language is challenging for humans due to the significant effort and time required. Consequently, new programming languages were developed that are closer to human languages to achieve the following:
  • Ease of use
  • Time efficiency
  • Reduced complexity to minimize errors
  • Facilitation of error detection and correction
  • The closer a programming language is to human language, the more it is categorized as a High-Level Language.

How Did Websites Begin?

During the Cold War, with the looming threat of nuclear conflict, rival nations sought technologies that allowed communication between various military control centers to bypass centralized decision-making. This ensured that operations could continue even if the main center was attacked. The challenge was to connect the computers managing these centers. The U.S. Department of Defense's DARPA agency developed a method to achieve this, leading to the creation of the ARPA network, the first computer network. This technology later linked universities, research centers, and large companies for financial data exchange, eventually evolving into the internet as we know it today.

In 1990, the first website was created, consisting of plain text without any user interface. By 1992, websites began incorporating images. In 1993, the first browser, Mosaic, supported both text and images. The real revolution occurred in 1994 with the release of Netscape, the first modern browser supporting text, images, and animated GIFs. In 1995, HTML (HyperText Markup Language) and JavaScript (JS) were introduced. JavaScript became a central part of web development. In 1996, CSS (Cascading Style Sheets) was introduced, transforming websites into the more modern and visually appealing designs we recognize today.

Another significant milestone came in 2003 with the launch of the WordPress content management platform. This enabled the proliferation of dynamic websites where administrators could easily change content without requiring a developer to modify the code. This shift revolutionized web development and applications, leading to the division of websites into components and specialization among web professionals.

What Are the Components of a Website?

  • The Back-End

    Typically consists of three parts (although additional or fewer components may exist depending on the website's purpose):

    1. The application processes user-provided data, stores it in databases, retrieves it, and manipulates it as necessary. In some cases, applications may operate without databases, saving uploaded files or performing specific calculations.
    2. The database organizes and stores data for easy retrieval by users when required (some simple projects may not need a database).
    3. APIs (Application Programming Interfaces) connect the back-end application to the front-end, enabling data exchange and facilitating functionality.
  • The Front-End

    The front-end is the visible part of the website that users interact with, such as login pages, about us, or contact pages. These can range from simple, static pages to complex platforms like online drawing tools or e-commerce interfaces for financial transactions.

meanstack-website-parts

Website Components

Domain Name and Hosting A domain name is the address of a website, such as www.google.com or www.facebook.com, purchased from specialized providers. The domain name maps to the server's IP address using DNS, simplifying website access for users.

Why Divide a Website Into These Components?

To answer this question, it is essential to understand how a website appears to users and how it operates.

When a user enters a website address, the browser requests the page from the server, which sends the page as an HTML file. Historically, dynamic pages were processed by server-side compilers (e.g., .php or .aspx files) before being delivered to the browser. The introduction of JavaScript allowed for simpler browser-side operations, reducing server interaction. Later, AJAX enabled requesting specific data from the server without reloading the entire page, improving user experience and performance.

Who Builds a Website?

In large projects, teams or individuals perform the following roles:

These roles are essential for large companies. However, smaller projects may require one person to handle multiple responsibilities.

Job Nature Job Title Responsibilities Tools
Design UI Design Choosing the layout of the website, its colors, fonts, images, and the colors of various elements. Design tools like Photoshop, HTML, CSS, JS
UX Design Determining the placement and usability of various elements. For example, the UI designer determines the location of a purchase button on an e-commerce site, while the UX designer ensures the button is easy for users to find and use. HTML, CSS, JS. UX designers also conduct tests, surveys, and use analytical tools, particularly marketing tools, to measure the quality of user experience design.
Programming Front-end Development Developing tasks that occur on the user's browser. JS, HTML
Database Design and Development In small and medium-sized projects, one person or a small team might handle the design, creation, and programming of databases. In large projects, specialized individuals or teams handle these tasks, especially as websites and web applications grow in complexity. Databases like MySQL, MS SQL, MongoDB, and other related tools.
Back-end Development Developing server-side tasks, often related to database interactions or handling shared files required for the application. Programming languages and frameworks like C# with ASP.NET, or JavaScript with Node.js.
Website Security Many security tasks are involved in a website, including securing code, server hosting, databases, and data. In large projects, specialists handle each task.
Server and Hosting Management Configuring server settings, managing website files, and ensuring efficient and fast website performance. Knowledge of server settings and networking.
Digital Marketing SEO Optimization Regardless of the effort spent on developing and designing a website, it remains invisible to visitors unless they know its domain name. For users who don’t know the domain, the website needs to be prepared and optimized to appear on search engines. This involves fundamental SEO setup done by the web designer and front-end developer, followed by additional optimization by a specialized digital marketer. HTML, CSS, JS. (The person doesn't need to be a technical expert in these languages but should have a general understanding.) In small websites, the same person might handle this task.
Content Management Managing and editing content, such as text, images, videos, or other types of media, depending on the website's purpose and type of content. Content is managed through the website's control panel, which is built as part of the front-end. It is accessible only to authorized users with specific permissions.
Management User Management Adding, editing, deleting users, and assigning roles and permissions to each user or group of users. Website control panel

As we’ve seen, tasks related to developing a website, its database, running it on hosting servers, and securing it can be handled by a single person, often called a full-stack developer. In many cases, the same person also designs the website if no UI/UX designer is available, or if the project is small and cannot afford separate design costs. A full-stack developer should be well-versed in the mentioned tasks and how to execute them. While they don’t need to excel in every area, they should have enough knowledge to handle small and medium-sized projects. Of course, it’s unlikely that one person can perform all tasks with the same level of efficiency and expertise. They might specialize in some aspects more than others.

February 26, 2025

Read More
إقرأ المزيد

دورة تدريبية

Course

9/2/1/1 أساسيات الجافاسكريبت 'الـ Objects'

1/1/2/9 JavaScript fundamentals: 'Objects'

دورة تدريبية

Course

8/2/1/1 أساسيات الجافاسكريبت 'الـ Arrays'

1/1/2/8 JavaScript fundamentals 'Arrays'

دورة تدريبية

Course

7/2/1/1 أساسيات الجافاسكريبت 'الـ Functions'

1/1/2/7 JavaScript fundamentals 'Functions'

أزمة صناعة المحتوى الرقمي

Crisis of Digital Content Industry

دورة تدريبية

Course

1/2/1/1 أساسيات الجافاسكريبت'المتغيرات'

1/1/2/1 JavaScript fundamentals 'Variables'

Keywords
كلمات مفتاحية

mean-stack from a to z دورة الـ دورة تطوير المواقع الإلكترونية دورة الأنجولر بالعربي دورة النود بالعربي mean-stack دورة الـ

course mean-stack from a to zweb development courseangular arabic coursenode js arabic coursemean-stack course

© 2026 Ahmed Zayed. All rights reserved.© 2026 كل الحقوق محفوظة أحمد زايد