Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Empty file.
16 changes: 16 additions & 0 deletions GoogleSearch/GoogleSearch/asgi.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
"""
ASGI config for GoogleSearch 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/6.0/howto/deployment/asgi/
"""

import os

from django.core.asgi import get_asgi_application

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'GoogleSearch.settings')

application = get_asgi_application()
76 changes: 76 additions & 0 deletions GoogleSearch/GoogleSearch/settings.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
from pathlib import Path
import os


BASE_DIR = Path(__file__).resolve().parent.parent


SECRET_KEY = 'django-insecure--pjdj6zn+0b323ggl+5w$i)_yi_*66_2s(5*0alr@b6*8$z2^t'

DEBUG = True

ALLOWED_HOSTS = []


INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'main',
]

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 = 'GoogleSearch.urls'

TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',

'DIRS': [os.path.join(BASE_DIR, 'main', 'templates')],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]

WSGI_APPLICATION = 'GoogleSearch.wsgi.application'


DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}


LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'UTC'
USE_I18N = True
USE_TZ = True


STATIC_URL = 'static/'

STATICFILES_DIRS = [
os.path.join(BASE_DIR, "main", "static"),
]

DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
10 changes: 10 additions & 0 deletions GoogleSearch/GoogleSearch/urls.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
from django.contrib import admin
from django.urls import path, include

urlpatterns = [

path('admin/', admin.site.urls),

path('', include('main.urls')),

]
16 changes: 16 additions & 0 deletions GoogleSearch/GoogleSearch/wsgi.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
"""
WSGI config for GoogleSearch 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/6.0/howto/deployment/wsgi/
"""

import os

from django.core.wsgi import get_wsgi_application

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'GoogleSearch.settings')

application = get_wsgi_application()
Empty file added GoogleSearch/main/__init__.py
Empty file.
3 changes: 3 additions & 0 deletions GoogleSearch/main/admin.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from django.contrib import admin

# Register your models here.
5 changes: 5 additions & 0 deletions GoogleSearch/main/apps.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
from django.apps import AppConfig


class MainConfig(AppConfig):
name = 'main'
Empty file.
3 changes: 3 additions & 0 deletions GoogleSearch/main/models.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from django.db import models

# Create your models here.
172 changes: 172 additions & 0 deletions GoogleSearch/main/static/css/style.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,172 @@

html, body {
height: 100%;
margin: 0;
padding: 0;
}

body {
font-family: 'Roboto', arial, sans-serif;
display: flex;
flex-direction: column;
min-height: 100vh;
}


nav {
display: flex;
justify-content: flex-end;
align-items: center;
padding: 6px 15px;
gap: 15px;
height: 60px;
}

nav a {
text-decoration: none;
color: rgba(0,0,0,0.87);
font-size: 13px;
}

.signin-btn {
background-color: #1a73e8;
color: white;
padding: 9px 23px;
border: none;
border-radius: 4px;
font-weight: 500;
cursor: pointer;
}


main {
flex: 1;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}

.search-container {
display: flex;
flex-direction: column;
align-items: center;
width: 100%;
margin-top: -50px;
}

.logo {
width: 272px;
margin-bottom: 25px;
}


.search-box {
display: flex;
align-items: center;
border: 1px solid #dfe1e5;
border-radius: 24px;
width: 584px;
max-width: 90%;
height: 44px;
padding: 0 15px;
transition: box-shadow 0.2s;
background-color: #fff;
}

.search-box:hover {
box-shadow: 0 1px 6px rgba(32,33,36,0.28);
border-color: transparent;
}

.search-input {
border: none;
flex: 1;
height: 100%;
outline: none;
font-size: 16px;
margin: 0 10px;
background: transparent;
}


.search-icons-group {
display: flex;
align-items: center;
gap: 12px;
}

.colored-icon {
width: 24px;
height: 24px;
cursor: pointer;
object-fit: contain;
}

.material-icons {
color: #9aa0a6;
font-size: 20px;
}


.buttons-group {
margin-top: 25px;
display: flex;
justify-content: center;
gap: 12px;
}

.btn {
background-color: #f8f9fa;
border: 1px solid #f8f9fa;
color: #3c4043;
padding: 0 16px;
height: 36px;
min-width: 54px;
border-radius: 4px;
cursor: pointer;
font-size: 14px;
transition: all 0.1s;
}

.btn:hover {
border: 1px solid #dadce0;
box-shadow: 0 1px 1px rgba(0,0,0,0.1);
color: #202124;
}

.lang-info {
margin-top: 25px;
font-size: 13px;
}

.lang-info a {
color: #1a0dab;
text-decoration: none;
}


footer {
background: #f2f2f2;
color: #70757a;
width: 100%;
margin-top: auto;
}

.footer-top {
padding: 15px 30px;
border-bottom: 1px solid #dadce0;
}

.footer-bottom {
display: flex;
justify-content: space-between;
padding: 15px 30px;
}

.footer-bottom a {
text-decoration: none;
color: #70757a;
margin-right: 20px;
font-size: 14px;
}
Binary file added GoogleSearch/main/static/images/camera.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added GoogleSearch/main/static/images/google-logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added GoogleSearch/main/static/images/mircophone.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
70 changes: 70 additions & 0 deletions GoogleSearch/main/static/images/termsOfService.rtf
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
{\rtf1\ansi\ansicpg1252\cocoartf2709
\cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fswiss\fcharset0 Arial-BoldMT;\f1\fswiss\fcharset0 ArialMT;}
{\colortbl;\red255\green255\blue255;\red24\green25\blue27;\red255\green255\blue255;\red19\green0\blue155;
}
{\*\expandedcolortbl;;\cssrgb\c12549\c12941\c14118;\cssrgb\c100000\c100000\c100000;\cssrgb\c10196\c5098\c67059;
}
{\*\listtable{\list\listtemplateid1\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid1\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid1}}
{\*\listoverridetable{\listoverride\listid1\listoverridecount0\ls1}}
\paperw11900\paperh16840\margl1440\margr1440\vieww11520\viewh8400\viewkind0
\deftab720
\pard\pardeftab720\partightenfactor0

\f0\b\fs48 \cf2 \cb3 \expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec2 Google Terms of Service\
\pard\pardeftab720\sa280\partightenfactor0

\f1\b0\fs28 \cf2 Effective 5 January 2022\'a0|\'a0{\field{\*\fldinst{HYPERLINK "https://www.google.com/terms/archive?hl=en-SA&fg=1"}}{\fldrslt \cf4 \strokec4 Archived versions}}\'a0|\'a0{\field{\*\fldinst{HYPERLINK "https://www.gstatic.com/policies/terms/pdf/20220105/it7r24p9/google_terms_of_service_en-GB.pdf"}}{\fldrslt \cf4 \strokec4 Download PDF}}\
\pard\pardeftab720\sa280\partightenfactor0
{\field{\*\fldinst{HYPERLINK "https://www.google.com/terms?hl=en-SA&fg=1#footnote-country-version"}}{\fldrslt \cf4 \strokec4 Country version:}}\'a0Saudi Arabia\
\pard\pardeftab720\partightenfactor0
\cf2 \
\pard\pardeftab720\sa298\partightenfactor0

\f0\b\fs36 \cf2 What\'92s covered in these terms\
\pard\pardeftab720\sa280\partightenfactor0

\fs28 \cf2 We know it\'92s tempting to skip these Terms of Service, but it\'92s important to establish what you can expect from us as you use Google\'a0{\field{\*\fldinst{HYPERLINK "https://www.google.com/terms?hl=en-SA&fg=1#footnote-services"}}{\fldrslt \cf4 \strokec4 services}}, and what we expect from you.\
\pard\pardeftab720\sa280\partightenfactor0

\f1\b0 \cf2 These Terms of Service reflect\'a0{\field{\*\fldinst{HYPERLINK "https://about.google/intl/en-GB_SA/how-our-business-works"}}{\fldrslt \cf4 \strokec4 the way that Google\'92s business works}}, the laws that apply to our company, and\'a0{\field{\*\fldinst{HYPERLINK "https://www.google.com/about/philosophy.html?hl=en_GB"}}{\fldrslt \cf4 \strokec4 certain things that we\'92ve always believed to be true}}. As a result, these Terms of Service help define Google\'92s relationship with you as you interact with our services. For example, these terms include the following topic headings:\
\pard\tx220\tx720\pardeftab720\li720\fi-720\partightenfactor0
\ls1\ilvl0\cf4 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext \uc0\u8226 }{\field{\*\fldinst{HYPERLINK "https://www.google.com/terms?hl=en-SA&fg=1#toc-what-you-expect"}}{\fldrslt \expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec4 What you can expect from us}}\cf2 \expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec2 , which describes how we provide and develop our services\cb1 \
\ls1\ilvl0\cf4 \cb3 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext \uc0\u8226 }{\field{\*\fldinst{HYPERLINK "https://www.google.com/terms?hl=en-SA&fg=1#toc-what-we-expect"}}{\fldrslt \expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec4 What we expect from you}}\cf2 \expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec2 , which establishes certain rules for using our services\cb1 \
\ls1\ilvl0\cf4 \cb3 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext \uc0\u8226 }{\field{\*\fldinst{HYPERLINK "https://www.google.com/terms?hl=en-SA&fg=1#toc-content"}}{\fldrslt \expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec4 Content in Google services}}\cf2 \expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec2 , which describes the intellectual property rights to the content that you find in our services \'96 whether that content belongs to you, Google or others\cb1 \
\ls1\ilvl0\cf4 \cb3 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext \uc0\u8226 }{\field{\*\fldinst{HYPERLINK "https://www.google.com/terms?hl=en-SA&fg=1#toc-problems"}}{\fldrslt \expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec4 In case of problems or disagreements}}\cf2 \expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec2 , which describes other legal rights that you have, and what to expect in case someone violates these terms.\cb1 \
\pard\pardeftab720\sa280\partightenfactor0
\cf2 \cb3 Understanding these terms is important because, by using our services, you\'92re agreeing to these terms.\
Besides these terms, we also publish a\'a0{\field{\*\fldinst{HYPERLINK "https://www.google.com/privacy?hl=en-SA&fg=1"}}{\fldrslt \cf4 \strokec4 Privacy Policy}}. Although it\'92s not part of these terms, we encourage you to read it to better understand how you can\'a0{\field{\*\fldinst{HYPERLINK "https://myaccount.google.com/?hl=en_GB"}}{\fldrslt \cf4 \strokec4 update, manage, export and delete your information}}.\
\pard\pardeftab720\partightenfactor0

\f0\b\fs48 \cf2 Terms\
\pard\pardeftab720\partightenfactor0

\f1\b0\fs28 \cf2 \
\pard\pardeftab720\sa298\partightenfactor0

\f0\b\fs36 \cf2 Service provider\
\pard\pardeftab720\sa280\partightenfactor0

\f1\b0\fs28 \cf2 Google\'a0{\field{\*\fldinst{HYPERLINK "https://www.google.com/terms?hl=en-SA&fg=1#footnote-services"}}{\fldrslt \cf4 \strokec4 services}}\'a0are provided by, and you\'92re contracting with:\
Google LLC\cb1 \uc0\u8232 \cb3 organised under the laws of the State of Delaware, USA, and operating under the laws of the USA\cb1 \uc0\u8232 \u8232 \cb3 1600 Amphitheatre Parkway\cb1 \uc0\u8232 \cb3 Mountain View, California 94043\cb1 \uc0\u8232 \cb3 USA\
\pard\pardeftab720\partightenfactor0
\cf2 \
\pard\pardeftab720\sa298\partightenfactor0

\f0\b\fs36 \cf2 Age requirements\
\pard\pardeftab720\sa280\partightenfactor0

\f1\b0\fs28 \cf2 If you\'92re under the\'a0{\field{\*\fldinst{HYPERLINK "https://support.google.com/accounts/answer/1350409?hl=en_GB"}}{\fldrslt \cf4 \strokec4 age required to manage your own Google Account}}, you must have your parent or legal guardian\'92s permission to use a Google Account. Please ask your parent or legal guardian to read these terms with you.\
If you\'92re a parent or legal guardian, and you allow your child to use the\'a0{\field{\*\fldinst{HYPERLINK "https://www.google.com/terms?hl=en-SA&fg=1#footnote-services"}}{\fldrslt \cf4 \strokec4 services}}, then these terms apply to you and you\'92re responsible for your child\'92s activity on the services.\
Some Google services have additional age requirements as described in their\'a0{\field{\*\fldinst{HYPERLINK "https://www.google.com/terms/service-specific?hl=en-SA&fg=1"}}{\fldrslt \cf4 \strokec4 service-specific additional terms and policies}}.\
}
Loading