diff --git a/.idea/LAB-Templates-CSS-101-main.iml b/.idea/LAB-Templates-CSS-101-main.iml new file mode 100644 index 0000000..8b8c395 --- /dev/null +++ b/.idea/LAB-Templates-CSS-101-main.iml @@ -0,0 +1,12 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/LAB-Templates-CSS-101.iml b/.idea/LAB-Templates-CSS-101.iml new file mode 100644 index 0000000..ec63674 --- /dev/null +++ b/.idea/LAB-Templates-CSS-101.iml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml new file mode 100644 index 0000000..105ce2d --- /dev/null +++ b/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..3671ece --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,10 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..8404513 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml new file mode 100644 index 0000000..febcf9f --- /dev/null +++ b/.idea/workspace.xml @@ -0,0 +1,65 @@ + + + + + + + + + + + + + { + "associatedIndex": 0 +} + + + + + + + + + + + + + + + + + + + + + + 1730110951552 + + + + \ No newline at end of file diff --git a/PracticeHtmlCss/PracticeHtmlCss/__init__.py b/PracticeHtmlCss/PracticeHtmlCss/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/PracticeHtmlCss/PracticeHtmlCss/asgi.py b/PracticeHtmlCss/PracticeHtmlCss/asgi.py new file mode 100644 index 0000000..cbc5ba9 --- /dev/null +++ b/PracticeHtmlCss/PracticeHtmlCss/asgi.py @@ -0,0 +1,16 @@ +""" +ASGI config for PracticeHtmlCss project. + +It exposes the ASGI callable as a module-level variable named ``application``. + +For more information on this file, see +https://docs.djangoproject.com/en/5.1/howto/deployment/asgi/ +""" + +import os + +from django.core.asgi import get_asgi_application + +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'PracticeHtmlCss.settings') + +application = get_asgi_application() diff --git a/PracticeHtmlCss/PracticeHtmlCss/settings.py b/PracticeHtmlCss/PracticeHtmlCss/settings.py new file mode 100644 index 0000000..a593cf1 --- /dev/null +++ b/PracticeHtmlCss/PracticeHtmlCss/settings.py @@ -0,0 +1,128 @@ +""" +Django settings for PracticeHtmlCss project. + +Generated by 'django-admin startproject' using Django 5.1.2. + +For more information on this file, see +https://docs.djangoproject.com/en/5.1/topics/settings/ + +For the full list of settings and their values, see +https://docs.djangoproject.com/en/5.1/ref/settings/ +""" + +from pathlib import Path +import os +# Build paths inside the project like this: BASE_DIR / 'subdir'. +BASE_DIR = Path(__file__).resolve().parent.parent + + +# Quick-start development settings - unsuitable for production +# See https://docs.djangoproject.com/en/5.1/howto/deployment/checklist/ + +# SECURITY WARNING: keep the secret key used in production secret! +SECRET_KEY = 'django-insecure-mn=25e2uvj_z-7p+o03_hlr@7fb2!4(2t=94321p(9-1yjvmw7' + +# SECURITY WARNING: don't run with debug turned on in production! +DEBUG = True + +ALLOWED_HOSTS = [] + + +# Application definition + +INSTALLED_APPS = [ + 'django.contrib.admin', + 'django.contrib.auth', + 'django.contrib.contenttypes', + 'django.contrib.sessions', + 'django.contrib.messages', + 'django.contrib.staticfiles', + 'myapplication', +] + +MIDDLEWARE = [ + 'django.middleware.security.SecurityMiddleware', + 'django.contrib.sessions.middleware.SessionMiddleware', + 'django.middleware.common.CommonMiddleware', + 'django.middleware.csrf.CsrfViewMiddleware', + 'django.contrib.auth.middleware.AuthenticationMiddleware', + 'django.contrib.messages.middleware.MessageMiddleware', + 'django.middleware.clickjacking.XFrameOptionsMiddleware', +] + +ROOT_URLCONF = 'PracticeHtmlCss.urls' + +TEMPLATES = [ + { + 'BACKEND': 'django.template.backends.django.DjangoTemplates', + 'DIRS': [BASE_DIR / 'templates'], + 'APP_DIRS': True, + 'OPTIONS': { + 'context_processors': [ + 'django.template.context_processors.debug', + 'django.template.context_processors.request', + 'django.contrib.auth.context_processors.auth', + 'django.contrib.messages.context_processors.messages', + ], + }, + }, +] + +WSGI_APPLICATION = 'PracticeHtmlCss.wsgi.application' + + +# Database +# https://docs.djangoproject.com/en/5.1/ref/settings/#databases + +DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.sqlite3', + 'NAME': BASE_DIR / 'db.sqlite3', + } +} + + +# Password validation +# https://docs.djangoproject.com/en/5.1/ref/settings/#auth-password-validators + +AUTH_PASSWORD_VALIDATORS = [ + { + 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', + }, +] + + +# Internationalization +# https://docs.djangoproject.com/en/5.1/topics/i18n/ + +LANGUAGE_CODE = 'en-us' + +TIME_ZONE = 'UTC' + +USE_I18N = True + +USE_TZ = True + + +# Static files (CSS, JavaScript, Images) +# https://docs.djangoproject.com/en/5.1/howto/static-files/ + +STATIC_URL = '/static/' +STATICFILES_DIRS = [BASE_DIR / 'static'] + + + + +# Default primary key field type +# https://docs.djangoproject.com/en/5.1/ref/settings/#default-auto-field + +DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' diff --git a/PracticeHtmlCss/PracticeHtmlCss/urls.py b/PracticeHtmlCss/PracticeHtmlCss/urls.py new file mode 100644 index 0000000..c5665a8 --- /dev/null +++ b/PracticeHtmlCss/PracticeHtmlCss/urls.py @@ -0,0 +1,23 @@ +""" +URL configuration for PracticeHtmlCss project. + +The `urlpatterns` list routes URLs to views. For more information please see: + https://docs.djangoproject.com/en/5.1/topics/http/urls/ +Examples: +Function views + 1. Add an import: from my_app import views + 2. Add a URL to urlpatterns: path('', views.home, name='home') +Class-based views + 1. Add an import: from other_app.views import Home + 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') +Including another URLconf + 1. Import the include() function: from django.urls import include, path + 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) +""" +from django.contrib import admin +from django.urls import path , include + +urlpatterns = [ + path('admin/', admin.site.urls), + path('',include("myapplication.urls")), +] diff --git a/PracticeHtmlCss/PracticeHtmlCss/wsgi.py b/PracticeHtmlCss/PracticeHtmlCss/wsgi.py new file mode 100644 index 0000000..4a50c81 --- /dev/null +++ b/PracticeHtmlCss/PracticeHtmlCss/wsgi.py @@ -0,0 +1,16 @@ +""" +WSGI config for PracticeHtmlCss project. + +It exposes the WSGI callable as a module-level variable named ``application``. + +For more information on this file, see +https://docs.djangoproject.com/en/5.1/howto/deployment/wsgi/ +""" + +import os + +from django.core.wsgi import get_wsgi_application + +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'PracticeHtmlCss.settings') + +application = get_wsgi_application() diff --git a/PracticeHtmlCss/manage.py b/PracticeHtmlCss/manage.py new file mode 100644 index 0000000..d6431a3 --- /dev/null +++ b/PracticeHtmlCss/manage.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python +"""Django's command-line utility for administrative tasks.""" +import os +import sys + + +def main(): + """Run administrative tasks.""" + os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'PracticeHtmlCss.settings') + try: + from django.core.management import execute_from_command_line + except ImportError as exc: + raise ImportError( + "Couldn't import Django. Are you sure it's installed and " + "available on your PYTHONPATH environment variable? Did you " + "forget to activate a virtual environment?" + ) from exc + execute_from_command_line(sys.argv) + + +if __name__ == '__main__': + main() diff --git a/PracticeHtmlCss/myapplication/__init__.py b/PracticeHtmlCss/myapplication/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/PracticeHtmlCss/myapplication/admin.py b/PracticeHtmlCss/myapplication/admin.py new file mode 100644 index 0000000..8c38f3f --- /dev/null +++ b/PracticeHtmlCss/myapplication/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/PracticeHtmlCss/myapplication/apps.py b/PracticeHtmlCss/myapplication/apps.py new file mode 100644 index 0000000..5cef3a5 --- /dev/null +++ b/PracticeHtmlCss/myapplication/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class MyapplicationConfig(AppConfig): + default_auto_field = 'django.db.models.BigAutoField' + name = 'myapplication' diff --git a/PracticeHtmlCss/myapplication/migrations/__init__.py b/PracticeHtmlCss/myapplication/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/PracticeHtmlCss/myapplication/models.py b/PracticeHtmlCss/myapplication/models.py new file mode 100644 index 0000000..71a8362 --- /dev/null +++ b/PracticeHtmlCss/myapplication/models.py @@ -0,0 +1,3 @@ +from django.db import models + +# Create your models here. diff --git a/PracticeHtmlCss/myapplication/templates/myapplication/article.html b/PracticeHtmlCss/myapplication/templates/myapplication/article.html new file mode 100644 index 0000000..d725f9d --- /dev/null +++ b/PracticeHtmlCss/myapplication/templates/myapplication/article.html @@ -0,0 +1,68 @@ +{% load static %} + + + + + + The Rise of AI + + + + +
+

The Rise of AI

+ +
+ +
+
+

Overview of AI

+

Artificial Intelligence (AI) is transforming industries with advanced algorithms and machine learning capabilities.

+ AI overview image +
+ +
+

Impact of AI

+

The impact of AI spans healthcare, finance, and beyond. It helps optimize processes, predict outcomes, and improve efficiency.

+
+ +
+

The Future of AI

+

The future holds even greater potential for AI, including advancements in autonomous systems, smart cities, and personalized healthcare.

+
+ +
+

Machine Learning

+

Machine Learning (ML) is a subset of AI that enables systems to learn and make predictions from data. ML algorithms identify patterns, improve over time, and can perform tasks such as classification, regression, and clustering.

+ +
+ +
+

Deep Learning

+

Deep Learning (DL) is an advanced form of ML that uses neural networks with multiple layers to analyze complex data. It's especially useful in image recognition, natural language processing, and autonomous systems.

+ + Deep Learning architecture illustration +
+
+ + + + + + diff --git a/PracticeHtmlCss/myapplication/templates/myapplication/cv.html b/PracticeHtmlCss/myapplication/templates/myapplication/cv.html new file mode 100644 index 0000000..a6b8ee2 --- /dev/null +++ b/PracticeHtmlCss/myapplication/templates/myapplication/cv.html @@ -0,0 +1,66 @@ + + + + + Eyad Alsaad - CV + + + + +
+

Full Stack Developer

+

Building reliable applications with Django, Python, and cloud integration. Let's bring innovative ideas to life!

+

📞 +966 59 008 5417 | 📧 eyalghamdi@outlook.com

+

LinkedIn Profile

+
+ +
+

Summary

+

I am a detail-oriented Full Stack Developer with expertise in Django, Python, and cloud databases. I am passionate about creating robust and scalable applications, ready to take on dynamic challenges and bring value through my skills.

+
+ +
+

Education

+

Umm Al-Qura University, Saudi Arabia
Bachelor’s in Computer Information Systems (CIS), 2020 - 2024

+
+ +
+

Projects

+
+

SmartCrop (Graduation Project)

+

An AI-powered application that provides farmers with crop recommendations for optimized productivity.

+
+
+

Co-Training

+

A web application for the Ministry of Education’s training department, enabling teachers to print certificates by entering their national ID.

+
+
+ +
+

Technical Skills

+ +
+ +
+

Contact Me

+

Feel free to reach out if you're interested in collaboration or opportunities. Let's connect!

+

📞 +966 59 008 5417 | 📧 eyalghamdi@outlook.com

+

LinkedIn Profile

+
+ + \ No newline at end of file diff --git a/PracticeHtmlCss/myapplication/templates/myapplication/index.html b/PracticeHtmlCss/myapplication/templates/myapplication/index.html new file mode 100644 index 0000000..0ec0b94 --- /dev/null +++ b/PracticeHtmlCss/myapplication/templates/myapplication/index.html @@ -0,0 +1,18 @@ + + + + + Title + + +
+

The Rise of AI

+ +
+ + diff --git a/PracticeHtmlCss/myapplication/templates/myapplication/introduction.html b/PracticeHtmlCss/myapplication/templates/myapplication/introduction.html new file mode 100644 index 0000000..6d79299 --- /dev/null +++ b/PracticeHtmlCss/myapplication/templates/myapplication/introduction.html @@ -0,0 +1,48 @@ + + + + + Title + + + +

Hello world!!

+

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolorem, maxime.

+

Subheading

+

This is a bold word and this is an italic word.

+Visit Twitter +
+ image +
+ + + + + + + + + + + +
NameAge
Eyad22
+

Contact us

+
+ + + + + + + + + +
+ + + + + diff --git a/PracticeHtmlCss/myapplication/templates/myapplication/introduction_css.html b/PracticeHtmlCss/myapplication/templates/myapplication/introduction_css.html new file mode 100644 index 0000000..6bda544 --- /dev/null +++ b/PracticeHtmlCss/myapplication/templates/myapplication/introduction_css.html @@ -0,0 +1,52 @@ +{% load static %} + + + + + Title + + + + + +

Hello world!!

+

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolorem, maxime.

+

Subheading

+ +

This is a bold word and this is an italic word.

+Visit Twitter +
+image +
+ + + + + + + + + + + +
NameAge
Eyad22
+

Contact us

+
+ + + + + + + + + +
+ + + + + diff --git a/PracticeHtmlCss/myapplication/tests.py b/PracticeHtmlCss/myapplication/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/PracticeHtmlCss/myapplication/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/PracticeHtmlCss/myapplication/urls.py b/PracticeHtmlCss/myapplication/urls.py new file mode 100644 index 0000000..9884558 --- /dev/null +++ b/PracticeHtmlCss/myapplication/urls.py @@ -0,0 +1,10 @@ +from django.urls import path +from . import views +app_name = "myapplication" +urlpatterns = [ + path("",views.index_view,name="index_view"), + path("introduction",views.html_intro_view,name="html_intro_view"), + path("introduction_css",views.css_intro_view,name="css_intro_view"), + path("article",views.article,name="article"), + path("cv",views.cv,name="cv"), +] \ No newline at end of file diff --git a/PracticeHtmlCss/myapplication/views.py b/PracticeHtmlCss/myapplication/views.py new file mode 100644 index 0000000..adae176 --- /dev/null +++ b/PracticeHtmlCss/myapplication/views.py @@ -0,0 +1,22 @@ +from django.shortcuts import render +from django.http import HttpRequest, HttpResponse + +def index_view(request:HttpRequest): + return render(request,"myapplication/index.html") + +def html_intro_view(request:HttpRequest): + return render(request,"myapplication/introduction.html") + +def css_intro_view(request:HttpRequest): + return render(request, 'myapplication/introduction_css.html') + +def article(request:HttpRequest): + return render(request, "myapplication/article.html") + +def cv(request:HttpRequest): + return render(request, "myapplication/cv.html") + + + + + diff --git a/PracticeHtmlCss/static/css/style.css b/PracticeHtmlCss/static/css/style.css new file mode 100644 index 0000000..5a22da2 --- /dev/null +++ b/PracticeHtmlCss/static/css/style.css @@ -0,0 +1,113 @@ +body { + font-family: Arial, sans-serif; + line-height: 1.6; + background-color: #f8f9fa; + margin: 0; + padding: 20px; + color: #333; +} + +h1 { + color: #0056b3; + font-size: 2em; + margin-bottom: 10px; + text-align: center; +} + +h2 { + color: #333; + font-size: 1.5em; + margin-top: 20px; +} + +p { + color: #0022ff; + font-size: 16px; + margin-bottom: 10px; +} + +a { + color: #ff0000; + text-decoration: none; +} + +a:hover { + text-decoration: underline; +} + +img { + width: 100%; + max-width: 400px; + display: block; + margin: 20px auto; + border-radius: 8px; +} + + +ul { + list-style-type: square; + padding-left: 20px; +} + +ul li { + margin-bottom: 5px; +} + + +table { + width: 100%; + border-collapse: collapse; + margin-top: 20px; +} + +th, td { + padding: 10px; + border: 1px solid #ddd; + text-align: left; +} + +th { + background-color: #0056b3; + color: white; +} + +form { + max-width: 500px; + margin: 20px auto; + padding: 20px; + background-color: #e9ecef; + border-radius: 8px; + box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); +} + +form label { + display: block; + font-weight: bold; + margin-top: 10px; +} + +form input[type="text"], +form textarea { + width: 100%; + padding: 8px; + margin-top: 5px; + border: 1px solid #ccc; + border-radius: 4px; + font-size: 16px; +} + +form button { + width: 100%; + padding: 10px; + background-color: #0056b3; + color: white; + font-size: 16px; + border: none; + border-radius: 4px; + cursor: pointer; + margin-top: 10px; +} + +form button:hover { + background-color: #004494; +} diff --git a/PracticeHtmlCss/static/css/style1.css b/PracticeHtmlCss/static/css/style1.css new file mode 100644 index 0000000..fa08574 --- /dev/null +++ b/PracticeHtmlCss/static/css/style1.css @@ -0,0 +1,70 @@ +/* General Body Styling */ +body { + font-family: Arial, sans-serif; + line-height: 1.6; + margin: 0; + padding: 0; + background-color: #f4f4f9; +} + +/* Header Styling */ +header { + background-color: #333; + color: white; + padding: 20px; + text-align: center; +} + +/* Navigation Links Styling */ +header nav a { + color: white; + margin: 0 10px; + text-decoration: none; + transition: color 0.3s; +} + +header nav a:hover { + color: #17a2b8; +} + +/* Main Content Styling */ +main { + padding: 20px; +} + +/* Section Styling */ +section { + margin-bottom: 20px; +} + +/* Image Styling */ +img { + width: 100%; + max-width: 600px; + border-radius: 5px; + margin-top: 10px; + transition: transform 0.3s; +} + +img:hover { + transform: scale(1.05); +} + +/* Footer Styling */ +footer { + background-color: #333; + color: white; + text-align: center; + padding: 10px; + font-size: 0.9em; +} + +/* Responsive Layout */ +@media (max-width: 768px) { + header h1 { + font-size: 1.5em; + } + main { + padding: 10px; + } +} diff --git a/PracticeHtmlCss/static/css/style2.css b/PracticeHtmlCss/static/css/style2.css new file mode 100644 index 0000000..0091fa2 --- /dev/null +++ b/PracticeHtmlCss/static/css/style2.css @@ -0,0 +1,109 @@ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +body { + font-family: Arial, sans-serif; + color: #333; + background-color: #d4d4d4; + line-height: 1.6; +} + +nav { + background-color: #125B9A; + color: white; + padding: 10px 20px; + display: flex; + justify-content: space-between; + align-items: center; +} + +nav h1 { + font-size: 1.5em; +} + +nav ul { + list-style: none; + display: flex; +} + +nav ul li { + margin-left: 20px; +} + +nav ul li a { + color: white; + text-decoration: none; + font-weight: bold; +} + +.hero { + text-align: center; + padding: 50px 20px; + background-color: #125B9A; + color: white; +} + +.hero h2 { + font-size: 2em; + margin-bottom: 10px; +} + +.hero a { + color: #f7f9fc; + text-decoration: underline; +} + +section { + padding: 20px; + margin: 20px auto; + max-width: 800px; + background-color: #fff; + border-radius: 8px; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); +} + +h3 { + font-size: 1.8em; + color: #0073e6; + margin-bottom: 10px; +} + +.project-item { + margin-bottom: 15px; +} + +ul { + list-style-type: none; +} + +ul li { + margin-bottom: 5px; +} + +#contact p { + text-align: center; +} + +a { + color: #0073e6; + text-decoration: none; +} + +a:hover { + text-decoration: underline; +} + +/* Responsive Design */ +@media (max-width: 600px) { + nav ul { + display: block; + text-align: center; + } + + nav ul li { + margin: 10px 0; + } +} diff --git a/PracticeHtmlCss/static/images/ai-overview.jpg b/PracticeHtmlCss/static/images/ai-overview.jpg new file mode 100644 index 0000000..578ceee Binary files /dev/null and b/PracticeHtmlCss/static/images/ai-overview.jpg differ diff --git a/PracticeHtmlCss/static/images/dl-architecture.jpg b/PracticeHtmlCss/static/images/dl-architecture.jpg new file mode 100644 index 0000000..02bc9b1 Binary files /dev/null and b/PracticeHtmlCss/static/images/dl-architecture.jpg differ diff --git a/PracticeHtmlCss/static/images/photo.jpg b/PracticeHtmlCss/static/images/photo.jpg new file mode 100644 index 0000000..aff68b9 Binary files /dev/null and b/PracticeHtmlCss/static/images/photo.jpg differ