diff --git a/04-Typescript/19-PersonalProject/Lee/easyvet.html b/04-Typescript/19-PersonalProject/Lee/easyvet.html
deleted file mode 100644
index 608419727..000000000
--- a/04-Typescript/19-PersonalProject/Lee/easyvet.html
+++ /dev/null
@@ -1,45 +0,0 @@
-
-
-<<<<<<< HEAD
-=======
-
->>>>>>> 7473a3df52bf457216d9852d7b1fca3092105c27
-
-
-
-
-
-<<<<<<< HEAD
- EasyVet
-
-
-
-=======
-
-
- EasyVet
-
-
-
-
-
-
- Make an appointment
- Treatments
- Family Members
- Vaccines
- Supplies
-
-
-
-
->>>>>>> 7473a3df52bf457216d9852d7b1fca3092105c27
-
-
\ No newline at end of file
diff --git a/04-Typescript/19-PersonalProject/Lee/easyvet.scss b/04-Typescript/19-PersonalProject/Lee/easyvet.scss
deleted file mode 100644
index a8d5775ab..000000000
--- a/04-Typescript/19-PersonalProject/Lee/easyvet.scss
+++ /dev/null
@@ -1,46 +0,0 @@
-
-*{
- margin: 0;
-}
- html {
- background-color: rgb(15, 215, 215);
-}
-
-.wrapper {
- i {
- padding-right: 10px;
- }
-
-
- .header {
- display: block;
- text-align: right;
- background-color: #03a1a1;
- width: 100%;
- height: 25px;
- font-size: 22px;
-
- }
-
-
- .navigation {
- display: block;
- text-align: center;
- justify-content: space-between;
- width: 100%;
- color: rgb(86, 86, 86);
- font-family: "Quicksand", sans-serif;
- font-weight: bold;
- font-size: 20px;
- background-color: #bcbcbc;
-
-
-
-}
-
-#paw {
- width: 40px;
- height: 40px;
-}
-
-}
\ No newline at end of file
diff --git a/04-Typescript/19-PersonalProject/Lee/easyvet.ts b/04-Typescript/19-PersonalProject/Lee/easyvet.ts
deleted file mode 100644
index 2cbdcef93..000000000
--- a/04-Typescript/19-PersonalProject/Lee/easyvet.ts
+++ /dev/null
@@ -1,69 +0,0 @@
-class Client {
- id: string;
- constructor(public name: string, public owner: string, public image: string, public birthYear: number) {
- this.id = uid();
- }
-}
-
-const clients: Client[] = [
- new Client("Nella", "Judith Dekel", "https://www.instagram.com/p/CX-9-hdIUFd/?img_index=1", 2021),
- new Client("Jango", "Linor Monir", "https://media.istockphoto.com/id/1259203799/photo/portrait-of-a-young-happy-belgian-shepherd-dog-malinois-posing-outdoors.jpg?s=612x612&w=0&k=20&c=yxDw11q_2NAgrUdm0AuBkqY1UnY9MKmtiaoeWOgHNRg=", 2022),
- new Client("Dubi", "Barak Ortman", "https://www.thesprucepets.com/thmb/DRKAoOkKeWmh5SMzDvapRfnZpn0=/4984x0/filters:no_upscale():strip_icc()/1_BlackPuppy-5ba50070c9e77c0082221c54.jpg", 2021),
- new Client("Cocus", "Yael Ortman", "https://thumbs.dreamstime.com/b/labrador-puppy-5857333.jpg", 2020),
- new Client("Hugo", "Netali Ortman", "https://qph.cf2.quoracdn.net/main-qimg-199d9dbd6c8b38138ed8ba833ec82162-lq", 2015)
-
-
-
-
-]
-
-class Vaccine {
- id: string;
- constructor(public vacName: string, public price: number) {
- this.id = uid();
- }
-}
-
-const Vaccines: Vaccine[] = [
-
- new Vaccine("Rabies", 100),
- new Vaccine("FVRCP", 80),
- new Vaccine("FHV", 60),
- new Vaccine("FHV-1", 70),
- new Vaccine("Parvovirus", 120),
- new Vaccine("Leptospirosis", 50),
- new Vaccine("Distemper", 200),
- new Vaccine("Canine Infectious Hepatitis", 130)
-]
-
-class Treatment {
- id: string;
- constructor(public treatName: string, public price: number) {
- this.id = uid();
- }
-}
-
-const treatments: Treatment[] = [
- new Treatment("Haircut", 200),
- new Treatment("Hospitalization per night", 450),
- new Treatment("teeth cleaning", 100),
- new Treatment("x-ray", 100),
- new Treatment("US", 100),
-]
-
-
-class Supply {
- id: string;
- constructor(public supName: string, public price: number) {
- this.id = uid();
- }
-}
-
-
-const supplies: Supply[] = [
- new Supply("Medical food 1 can", 17),
- new Supply("Ampoule Anti-flea & Tick", 47),
- new Supply("seringe", 10)
-
-
-]
diff --git a/04-Typescript/19-PersonalProject/Lee/index.html b/04-Typescript/19-PersonalProject/Lee/index.html
deleted file mode 100644
index af182bc01..000000000
--- a/04-Typescript/19-PersonalProject/Lee/index.html
+++ /dev/null
@@ -1,85 +0,0 @@
-
-
-
-
-
-
- Document
-
-
-
-
-
-
-
-
-
-
-
-
Sun
-
Mon
-
Tue
-
Wed
-
Thu
-
Fri
-
Sat
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/04-Typescript/19-PersonalProject/Lee/index.ts b/04-Typescript/19-PersonalProject/Lee/index.ts
deleted file mode 100644
index 82ad3c379..000000000
--- a/04-Typescript/19-PersonalProject/Lee/index.ts
+++ /dev/null
@@ -1,72 +0,0 @@
-const date: Date = new Date();
-
-const renderCalendar = () => {
-
-
-
-date.setDate(1);
-
-const monthDays: Element | null = document.querySelector(".days")
-
-const lastDay = new Date(date.getFullYear(), date.getMonth()+1, 0).getDate();
-
-const prevLastDay = new Date(date.getFullYear(), date.getMonth(), 0).getDate();
-
-const firstDayIndex = date.getDay()
-
-const lastDayIndex = new Date(date.getFullYear(), date.getMonth()+1, 0).getDay();
-
-const nextDays = 7 - lastDayIndex - 1;
-
-const months = [
- "January",
- "February",
- "March",
- "April",
- "May",
- "June",
- "July",
- "August",
- "September",
- "October",
- "November",
- "December"
-];
-
-document.querySelector(".date h1")?.innerHTML = months [date.getMonth()]
-
-document.querySelector(".date p")?.innerHTML = date.toDateString()
-
-let days = "";
-
-for (let x = firstDayIndex; x > 0; x--) {
- days += `${prevLastDay - x + 1}
`;
-}
-
-for (let i = 1; i <= lastDay; i++) {
- if (i === new Date().getDate() && date.getMonth() === new Date().getMonth()){
- days += `${i}
`;
-
- } else {
- days += `${i}
`;
-
- }
-
-}
-
-for (let j = 1; j <= nextDays; j++) {
- days += `${j}
`;
- monthDays.innerHTML = days;
-}
-}
-document.querySelector('.prev')?.addEventListener('click', () => {
- date.setMonth(date.getMonth() - 1)
- renderCalendar()
-})
-
-document.querySelector('.next')?.addEventListener('click', () => {
- date.setMonth(date.getMonth() + 1)
- renderCalendar()
-})
-
-renderCalendar()
\ No newline at end of file
diff --git a/04-Typescript/19-PersonalProject/Lee/pages/main.html b/04-Typescript/19-PersonalProject/Lee/pages/main.html
deleted file mode 100644
index 19c06286d..000000000
--- a/04-Typescript/19-PersonalProject/Lee/pages/main.html
+++ /dev/null
@@ -1,62 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
- easyVet App
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/04-Typescript/19-PersonalProject/Lee/pages/main.scss b/04-Typescript/19-PersonalProject/Lee/pages/main.scss
deleted file mode 100644
index a9204af73..000000000
--- a/04-Typescript/19-PersonalProject/Lee/pages/main.scss
+++ /dev/null
@@ -1,185 +0,0 @@
-
-*{
- margin: 0;
- padding: 0;
- color: #fff;
- font-family: "Quicksand", sans-serif;
- letter-spacing: 1px;
- font-size: 20px;
-}
-
-html {
- height: 100%;
-
-body {
-
- display: flex;
- flex-direction: column;
- min-height: 100%;
-
- img {
- margin-top: 1rem;
- }
-
- nav {
- height: 4rem;
- width: 100vw;
- display: flex;
- position: fixed;
- z-index: 10;
- background-color: #03a1a1;
- box-shadow: 0 3px 20px rgba(0,0,0,0.2);
-
-
-
- .logo {
- padding: -2vh 7vw;
- width: 20vw;
-
- img {
- height: 12rem;
- width: 20rem;
- }
- }
-
- .nav__links {
- width: 60vw;
- display: flex;
- gap: 1.7rem;
- pad: 0 0.7vw;
- align-items: center;
- justify-content: center;
- list-style: none;
- font-weight: bold;
- font-size: larger;
-
- }
-
- .nav__links li a {
- margin: 0 0.7vw;
- text-decoration: none;
- transform: all ease-in-out 350ms;
- padding: 10px;
-
- &:hover {
- background-color: #5cc4c4;
- padding: 10px;
- border-radius: 50px;
-
- }
-
- &:hover::before {
- width:80%;
- }
-
- }
-
- .nav__links li {
- position: relative;
-
-
- &:nth-child(1){
- transition: all 0.5s ease 0.2s;
- }
- &:nth-child(2){
- transition: all 0.5s ease 0.4s;
- }
- &:nth-child(3){
- transition: all 0.5s ease 0.6s;
- }
- &:nth-child(4){
- transition: all 0.5s ease 0.7s;
- }
- &:nth-child(5){
- transition: all 0.5s ease 0.8s;
- }
- &:nth-child(6){
- transition: all 0.5s ease 1s;
- }
-
- }
-
- .hamburger div{
- width: 30px;
- height: 3px;
- background: #fff;
- margin: 5px;
- transform: all 0.3s ease;
- }
-
- .hamburger {
- display: none;
- }
-
- @media (max-width:800px) {
- nav{
- position: fixed;
- z-index: 3;
- }
-
- .hamburger {
- display: block;
- position: absolute;
- cursor: pointer;
- right: 5%;
- top: 50%;
- transform: translate(-5%, -50%);
- z-index: 2;
- transition: all 0.7s ease;
- }
-
- .nav__links {
- background: #03a1a1;
- position: fixed;
- opacity: 1;
- height: 100vh;
- width: 100%;
- flex-direction: column;
- clip-path: circle(50px at 90% -20%);
- transition: all 1s ease-out;
- pointer-events: none;
- padding-top: 1.3rem;
-
- }
-
- .nav__links.open {
- clip-path: circle(1000px at 90% -10%);
- pointer-events: all;
- gap: 5rem;
- }
-
-}
-}
-
-.container {
- &__img {
- width: 100vw;
- height: auto;
- }
-}
-
-.main {
-
- &__img {
-
- width: 100vw;
- padding-top:7rem;
- }
-}
-
-footer {
-
- background-color: darkgray;
- width: 100vw;
- height: 10px;
- padding-bottom: 15px;
- margin-top: auto;
-
- i {
- padding-left: .3rem;
- }
-
-}
-
-}
-}
diff --git a/04-Typescript/19-PersonalProject/Lee/pages/main.ts b/04-Typescript/19-PersonalProject/Lee/pages/main.ts
deleted file mode 100644
index 0f21d9d50..000000000
--- a/04-Typescript/19-PersonalProject/Lee/pages/main.ts
+++ /dev/null
@@ -1,373 +0,0 @@
-class Patient {
- id: string;
- isEdit: boolean = false;
- constructor(public name: string, public owner: string, public phone: string, public image: string, public birthYear: number, id?: string | null) {
- if (id) {
- this.id = id;
- } else {
-
- this.id = `${Math.random()}`
- }
- }
-
- setEdit(set: boolean) {
- this.isEdit = set;
- }
-}
-
-<<<<<<< HEAD
-
-const patients: Patient[] = getPatientsFromStorage();
-
-function getPatientsFromStorage(): Patient[] {
- try {
- const patientsString = localStorage.getItem("patients");
- if (!patientsString) return [];
-
- const patientsArray = JSON.parse(patientsString)
-
- const patients: Patient[] = patientsArray.map((patient: Patient) => {
- return new Patient(patient.name, patient.owner, patient.phone, patient.image, patient.birthYear, patient.id)
- })
-
- return patients
-
-=======
-const firstPatiens: Patient[] = [
-
- new Patient(
- "Oscar", "Lee Dekel", "0521111111", "https://media.istockphoto.com/id/462488163/photo/tabby-grey-cat-lying-on-white-background.jpg?s=612x612&w=0&k=20&c=PowgpbMeU8jJwlHrkVQY3SLGrr_83pR8m6_arn_M3BA=", 2006
- ),
- new Patient(
- "Nella", "Judith Dekel", "0522222222", "https://www.letsgetpet.com/wp-content/uploads/2021/02/chat-tricolore.jpeg", 2021
- ),
- new Patient(
- "Dubi", "Barak Ortman", "0521201120", "https://www.thesprucepets.com/thmb/DRKAoOkKeWmh5SMzDvapRfnZpn0=/4984x0/filters:no_upscale():strip_icc()/1_BlackPuppy-5ba50070c9e77c0082221c54.jpg", 2021
- ),
- new Patient(
- "Cocus", "Yael Ortman", "0520000000", "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRK7XX6qCOcpfywUyH57ckF39sBbvZD6E-cAQ&usqp=CAU", 2020
- ),
- new Patient(
- "Jango", "Linor Monir", "0521010100", "https://media.istockphoto.com/id/1259203799/photo/portrait-of-a-young-happy-belgian-shepherd-dog-malinois-posing-outdoors.jpg?s=612x612&w=0&k=20&c=yxDw11q_2NAgrUdm0AuBkqY1UnY9MKmtiaoeWOgHNRg=", 2021
- ),
-
-
-];
-
-const patients: Patient[] = getProductsFromLocalStorage();
-
-function getProductsFromLocalStorage(): Patient[] {
- try {
- const patientsString = localStorage.getItem("patients");
- if (!patientsString) {
- localStorage.setItem("patients", JSON.stringify(firstPatiens));
- return firstPatiens;
- } else {
-
- const patientsArray = JSON.parse(patientsString)
- const patients: Patient[] = patientsArray.map((patient: Patient) => {
- return new Patient(patient.name, patient.owner, patient.phone, patient.image, patient.birthYear, patient.id)
- })
-
- return patients;
- }
->>>>>>> 7473a3df52bf457216d9852d7b1fca3092105c27
- } catch (error) {
- console.error(error)
- return []
-
- }
-};
-
-
-
-renderAllPatients(patients, document.querySelector('#rootPatients'))
-
-<<<<<<< HEAD
-
-=======
->>>>>>> 7473a3df52bf457216d9852d7b1fca3092105c27
-function handleAddPatients(ev: any) {
- try {
- ev.preventDefault();
- const name = ev.target.elements.name.value;
- const owner = ev.target.elements.owner.value;
- const phone = ev.target.elements.phone.value;
- const image = ev.target.elements.image.value;
- const birthYear = ev.target.elements.birthYear.value;
-
- const newPatient = new Patient(name, owner, phone, image, birthYear);
- patients.push(newPatient);
-
- renderAllPatients(patients, document.querySelector('#rootPatients'))
-
- localStorage.setItem("patients", JSON.stringify(patients));
- ev.target.reset();
-
- } catch (error) {
- console.error(error)
- }
-}
-
-
-function renderAllPatients(patients: Patient[], htmlElement: HTMLElement | null) {
-
- try {
- if (!htmlElement) throw new Error("No element");
- const html = patients.map(patient => renderPatientCard(patient)).join(' ')
-
- htmlElement.innerHTML = html;
- } catch (error) {
- console.error(error)
-
- }
-}
-
-function renderPatientCard(patient: Patient) {
- try {
-
- if (patient.isEdit) {
- return `
-
-
- `
- } else {
- return `
-
-
Name: ${patient.name}
- Owner: ${patient.owner}
- Phone: ${patient.phone}
- Birth Year: ${patient.birthYear}
- Remove
- Edit
-
- `
- }
- } catch (error) {
- console.error(error)
- return ''
- }
-}
-
-function handleRemovePatient(patientId: string) {
- try {
- const index = patients.findIndex(patient => patient.id === patientId);
- if (index === -1) throw new Error("Could not find patient");
-
- patients.splice(index, 1);
- localStorage.setItem("patients", JSON.stringify(patients));
-
- renderAllPatients(patients, document.querySelector("#rootPatients"))
-
- } catch (error) {
- console.error(error);
-
- }
-}
-
-function handleEdit(patientId: string) {
- try {
- const patient = patients.find(patient => patient.id === patientId)
- if (!patient) throw new Error("Couldn't find patient")
-
- patient.setEdit(true);
- renderAllPatients(patients, document.querySelector("#rootPatients"))
-
- } catch (error) {
- console.error(error);
-
- }
-}
-
-function handleSetEditPatient(ev: any) {
- try {
- ev.preventDefault();
- const name = ev.target.name.value;
- const owner = ev.target.owner.value;
- const phone = ev.target.phone.value;
- const birthYear = ev.target.birthYear.value;
- const patientId: string = ev.target.id;
-
-<<<<<<< HEAD
- const patient:Patient|undefined = patients.find(patient => patient.id === patientId)
- if(!patient) throw new Error("Could not find patient")
-
-=======
- const patient: Patient | undefined = patients.find(patient => patient.id === patientId)
- if (!patient) throw new Error("Could not find patient")
-
->>>>>>> 7473a3df52bf457216d9852d7b1fca3092105c27
- patient.name = name;
- patient.owner = owner;
- patient.phone = phone;
- patient.birthYear = birthYear;
- patient.setEdit(false)
- console.log(patients)
-
- localStorage.setItem("patients", JSON.stringify(patients))
- renderAllPatients(patients, document.querySelector("#rootPatients"));
-
-<<<<<<< HEAD
-
-=======
-
->>>>>>> 7473a3df52bf457216d9852d7b1fca3092105c27
-
-
-
- } catch (error) {
- console.error(error)
-
- }
-}
-
-<<<<<<< HEAD
-
-
-
-
-
-
-
-class Vaccine {
- id: string;
- constructor(public vacName: string, public price: number) {
- // this.id = uid();
-=======
-class Vaccine {
- id: string;
- constructor(public vacName: string, public price: number, id?: string | null) {
- if (id) {
- this.id = id;
- } else {
-
- this.id = `${Math.random()}`
- }
->>>>>>> 7473a3df52bf457216d9852d7b1fca3092105c27
- }
-}
-
-const Vaccines: Vaccine[] = [
-
- new Vaccine("Rabies", 100),
- new Vaccine("FVRCP", 80),
- new Vaccine("FHV", 60),
- new Vaccine("FHV-1", 70),
- new Vaccine("Parvovirus", 120),
- new Vaccine("Leptospirosis", 50),
- new Vaccine("Distemper", 200),
- new Vaccine("Canine Infectious Hepatitis", 130)
-]
-
-<<<<<<< HEAD
-class Treatment {
- id: string;
- constructor(public treatName: string, public price: number) {
- // this.id = uid();
-=======
-
-
-class PatientVaccine {
- constructor(public name: Patient, public owner: Patient, public patientId: Patient, public vacName: Vaccine, public price: Vaccine, public VacId: Vaccine) {
-
- }
-}
-
-const patientVaccine: PatientVaccine[] = []
-
-
-function renderVaxPatient(rootElement:HTMLElement|null) {
- try {
- const html =
- ``
- console.log(html)
-
- if(!rootElement) throw new Error("no root elemnt")
-
- rootElement.innerHTML = html
- } catch (error) {
- console.error(error)
-
- }
-}
-
-renderVaxPatient (document.querySelector("#submit"))
-
-
-function handleVaxPatient(ev: any) {
- try {
- ev.preventDefault();
- const name = ev.target.name.value;
- const owner = ev.target.owner.value;
- const vaccine = ev.target.vaccine.value;
- const price = ev.target.price.value;
-
- console.log(name, owner, vaccine, price)
-
- } catch (error) {
- console.error(error)
-
- }
-}
-
-
-
-
-
-
-
-class Treatment {
- id: string;
- constructor(public treatName: string, public price: number) {
->>>>>>> 7473a3df52bf457216d9852d7b1fca3092105c27
- }
-}
-
-const treatments: Treatment[] = [
- new Treatment("Haircut", 200),
- new Treatment("Hospitalization per night", 450),
- new Treatment("teeth cleaning", 100),
- new Treatment("x-ray", 100),
- new Treatment("US", 100),
-]
-
-
-<<<<<<< HEAD
-class Supply {
- id: string;
- constructor(public supName: string, public price: number) {
- // this.id = uid();
- }
-}
-
-
-const supplies: Supply[] = [
- new Supply("Medical food can", 17),
- new Supply("Ampoule Anti-flea & Tick", 47),
- new Supply("seringe", 10)
-]
-=======
-
-
-class PatientTeatment {
- constructor(public name: Patient, public owner: Patient, public treatName: Treatment, public price: Treatment) {
-
- }
-}
->>>>>>> 7473a3df52bf457216d9852d7b1fca3092105c27
diff --git a/04-Typescript/19-PersonalProject/Lee/pages/patients.html b/04-Typescript/19-PersonalProject/Lee/pages/patients.html
deleted file mode 100644
index 46720e587..000000000
--- a/04-Typescript/19-PersonalProject/Lee/pages/patients.html
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
-
-
-
-
- Patiens
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/04-Typescript/19-PersonalProject/Lee/pages/patients.scss b/04-Typescript/19-PersonalProject/Lee/pages/patients.scss
deleted file mode 100644
index 86d81586f..000000000
--- a/04-Typescript/19-PersonalProject/Lee/pages/patients.scss
+++ /dev/null
@@ -1,83 +0,0 @@
-html {
- background-color: #a2f1f1;
- display: flex;
- justify-content: center;
-
-
- body {
- font-family: "Quicksand", sans-serif;
- font-size: 18px;
- font-weight: bold;
-
-
-form {
- border: 2px solid rgb(76, 76, 76);
- border-radius: 15px;
- margin: 2rem;
- padding: 2rem;
-
- h2 {
- display: flex;
- justify-content: center;
- text-shadow: 1px 3px 3px rgba(0, 0, 0, 0.5);
- }
-
- input {
- height: 20px;
- border-radius: 7px;
- }
-
- #add {
- height: 26px;
- background-color: #4fb6b6;
-
- &:hover {
- background-color: #6bbcbc;
- cursor: pointer;
-
- }
- }
-}
-
-.card {
-display: flex;
-flex-direction: column;
-margin: auto;
-margin-bottom: 1.3rem;
-width: 380px;
-height: 490px;
-gap: 1rem;
-border-radius: 25px;
-box-shadow: 1px 3px 3px rgba(0, 0, 0, 0.5);
-text-align: center;
-
-
-
-button {
- width: 130px;
- height: 25px;
- background-color: #94c8c8;
- border-radius: 7px;
-
-}
-
-p {
- background-color: #4fb6b6;
-
- box-sizing: content-box;
- border-radius: 5px;
- border-bottom-right-radius: 7px;
- border-bottom-left-radius: 7px;
-}
-img {
- width: 100%;
- height: 190px;
- border-radius: 25px;
- border-bottom-left-radius: 7px;
- border-bottom-right-radius: 7px;
-}
-}
-}
-}
-
-
diff --git a/04-Typescript/19-PersonalProject/Lee/pages/supplies.html b/04-Typescript/19-PersonalProject/Lee/pages/supplies.html
deleted file mode 100644
index a313bf550..000000000
--- a/04-Typescript/19-PersonalProject/Lee/pages/supplies.html
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
-
-
-<<<<<<< HEAD
- Document
-=======
- Supplies
- Medical Supplies
->>>>>>> 7473a3df52bf457216d9852d7b1fca3092105c27
-
-
-
-
-
- +
-
-
-
-
-
\ No newline at end of file
diff --git a/04-Typescript/19-PersonalProject/Lee/pages/supplies.scss b/04-Typescript/19-PersonalProject/Lee/pages/supplies.scss
deleted file mode 100644
index 18de6cbc4..000000000
--- a/04-Typescript/19-PersonalProject/Lee/pages/supplies.scss
+++ /dev/null
@@ -1,128 +0,0 @@
-* {
- padding: 0%;
- margin: 0%;
- font-family: "Quicksand", sans-serif;
-
- }
-
- html {
- background-color: #a2f1f1;
-
-
- body {
- width: 100vw;
- height: 100vh;
- padding: 10px;
-<<<<<<< HEAD
-=======
-
- h1 {
- text-align: center;
- text-shadow: 2px 3px 10px rgba(0, 0, 0, 0.5);
- }
->>>>>>> 7473a3df52bf457216d9852d7b1fca3092105c27
-
-
- #searchInput {
- position: absolute;
- width: 170px;
- height: 30px;
- padding: 10px;
- border: 0.5px solid rgba(0, 0, 0, 0.276);
- border-radius: 10px;
- background: white
- url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' class='bi bi-search' viewBox='0 0 16 16'%3E%3Cpath d='M11.742 10.344a6.5 6.5 0 1 0-1.397 1.398h-.001c.03.04.062.078.098.115l3.85 3.85a1 1 0 0 0 1.415-1.414l-3.85-3.85a1.007 1.007 0 0 0-.115-.1zM12 6.5a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0z'%3E%3C/path%3E%3C/svg%3E")
- no-repeat 88% center;
- }
-
- #addProductBtn {
- padding: 10px 17px;
- margin: 15px;
- border: .3px solid rgba(0, 0, 0, 0.142);
- box-shadow: 2px 5px 20px rgba(0, 0, 0, 0.189);
- border-radius: 50px;
- display: block;
- position: relative;
- left: calc(50% - 33px);
- font-size: x-large;
- }
- .addProductForm {
- transition: display .5s ;
- border-radius: 20px;
- display: none;
- position: relative;
- box-shadow: 2px 5px 9px rgba(0, 0, 0, 0.162);
- left: calc(50% - 125px);
- text-align: center;
- width: 250px;
- padding: 10px;
- background-color: white;
- * {
- padding: 5px;
- margin: 5px;
- }
- }
-
- .active {
- display: block;
- }
-
- .isntFound{
- display: none;
- }
- .productGallery {
- width: 96vw;
- display: grid;
- grid-template-columns: repeat(auto-fill, minmax(265px, 1fr));
- .productItem {
- background-color: white;
- margin: 10px;
- padding: 10px;
- border-radius: 20px;
- box-shadow: 3px 4px 9px rgba(0, 0, 0, 0.137);
- text-align: center;
- position: relative;
- img {
- width: 130px;
- height: 110px;
- object-fit: cover;
- }
- button,
- #productAmount {
- display: inline-block;
- width: 20px;
- }
- #deleteBtn {
- position: absolute;
- width: 50px;
- right: 80px;
- background-color: #de5334;
- border-radius: 7px;
-
- &:hover {
- cursor: pointer;
- }
- span {
- font-size: small;
- }
- }
- #editProductAmount {
- width: 40px;
- }
- #editBtn {
- position: absolute;
- width: 40px;
- right: 30px;
- background-color: #94c8c8;
- border-radius: 7px;
- &:hover {
- cursor: pointer;
- }
- span {
- font-size: small;
- }
- }
- }
- }
-}
-}
\ No newline at end of file
diff --git a/04-Typescript/19-PersonalProject/Lee/pages/supplies.ts b/04-Typescript/19-PersonalProject/Lee/pages/supplies.ts
deleted file mode 100644
index f2df26727..000000000
--- a/04-Typescript/19-PersonalProject/Lee/pages/supplies.ts
+++ /dev/null
@@ -1,438 +0,0 @@
-class Product {
-<<<<<<< HEAD
- constructor(
- public name: string,
- public amount: number = 0,
- public imgSrc: string,
- public price: number,
- public id: string = createId(),
- public isEdit: boolean = false,
- ) {}
-
- setEdit(set: boolean) {
- this.isEdit = set;
- }
- }
-
- function createId() {
- return String(Date.now().toString(32) + Math.random().toString(16)).replace(
- /\./g,
- "",
- );
- }
-
- const firstProducts: Product[] = [
- new Product(
- "Medical food can",
- 6,
- "https://encrypted-tbn2.gstatic.com/shopping?q=tbn:ANd9GcTAyzAhgyuBcL3IL0VlfGbcEesqxNKcqFoSWISCb2jEdiTBKBpKYPU2Eh3EvdIITjim8fqfx8m2N79dyQXIp8gTPeS0S0sQfPLs2dwfvtwJU5WAD4US89Fd&usqp=CAc", 17
- ),
- new Product(
- "Ampoule Anti-flea & Tick",
- 5,
- "https://encrypted-tbn1.gstatic.com/shopping?q=tbn:ANd9GcS7ER1AcRiMl6jrJDpnzzxlipIEYWPDK6ywuVhv9bLcBTlNiSi7ZgryJO6yd-_0_cyXhioq_tCVyNKi616y0dxBwgyNfKsRZO11tjigZPd1ND_J1FPPP3fUNA&usqp=CAc", 179
- ),
- new Product(
- "Ampoule Anti-flea & Tick",
- 5,
- "https://encrypted-tbn1.gstatic.com/shopping?q=tbn:ANd9GcS7ER1AcRiMl6jrJDpnzzxlipIEYWPDK6ywuVhv9bLcBTlNiSi7ZgryJO6yd-_0_cyXhioq_tCVyNKi616y0dxBwgyNfKsRZO11tjigZPd1ND_J1FPPP3fUNA&usqp=CAc", 179
- ),
- new Product(
- "seringe",
- 2,
- "https://cdn.pixabay.com/photo/2023/06/11/19/09/fruit-8056663_1280.jpg", 10
- ),
- new Product(
- "Anti-flea & Tick tablets",
- 11,
- "https://www.gag-lachayot.co.il/wp-content/uploads/2020/12/%D7%AA%D7%9E%D7%95%D7%A0%D7%94-%D7%9B%D7%95%D7%9C%D7%9C%D7%AA-%D7%A1%D7%98%D7%A8%D7%95%D7%A0%D7%92%D7%94%D7%95%D7%9C%D7%93-%D7%97%D7%AA%D7%95%D7%9C.jpg", 189
- ),
- new Product(
- "Ear & eye drops",
- 11,
- "https://encrypted-tbn3.gstatic.com/shopping?q=tbn:ANd9GcR_gi6ZjmjE7NZQ4rig15PDbSPwy-oXu6tykhosqgx10dKbBJkNw6skcYje9p6zXtGxY8YWNyJVMcnM90I2_Z1I42bp7rr-xrv67OKhUqfIiEWV000cSp07&usqp=CAc", 38
- ),
- ];
-
- let products: Product[] = getProductsFromLocalStorage();
-
- function getProductsFromLocalStorage() {
- try {
- const productsString = localStorage.getItem("products");
- if (!productsString) {
- localStorage.setItem("products", JSON.stringify(firstProducts));
- return firstProducts;
- } else {
- const productsArray = JSON.parse(productsString);
- const products = productsArray.map((pro) => {
- return new Product(pro.name, pro.amount, pro.imgSrc);
- });
- return products;
- }
- } catch (error) {
- console.error(error);
- return [];
- }
- }
-
- function renderProducts() {
- const html = products
- .map((product) => {
- if (!product.isEdit)
- return `
-=======
- constructor(
- public name: string,
- public amount: number = 0,
- public imgSrc: string,
- public price: number,
- public id: string = createId(),
- public isEdit: boolean = false,
- ) { }
-
- setEdit(set: boolean) {
- this.isEdit = set;
- }
-}
-
-function createId() {
- return String(Date.now().toString(32) + Math.random().toString(16)).replace(
- /\./g,
- "",
- );
-}
-
-const firstProducts: Product[] = [
-
- new Product(
- "Medical food can",
- 6,
- "https://encrypted-tbn2.gstatic.com/shopping?q=tbn:ANd9GcTAyzAhgyuBcL3IL0VlfGbcEesqxNKcqFoSWISCb2jEdiTBKBpKYPU2Eh3EvdIITjim8fqfx8m2N79dyQXIp8gTPeS0S0sQfPLs2dwfvtwJU5WAD4US89Fd&usqp=CAc", 17
- ),
-
- new Product(
- "Ampoule Anti-flea & Tick",
- 5,
- "https://encrypted-tbn1.gstatic.com/shopping?q=tbn:ANd9GcS7ER1AcRiMl6jrJDpnzzxlipIEYWPDK6ywuVhv9bLcBTlNiSi7ZgryJO6yd-_0_cyXhioq_tCVyNKi616y0dxBwgyNfKsRZO11tjigZPd1ND_J1FPPP3fUNA&usqp=CAc", 179
- ),
- new Product(
- "seringe",
- 2,
- "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcS0dhOyNhKG8M8QceV3CSYEODWFfZyxNBb42A&usqp=CAU", 10
- ),
- new Product(
- "Anti-flea & Tick tablets",
- 11,
- "https://www.gag-lachayot.co.il/wp-content/uploads/2020/12/%D7%AA%D7%9E%D7%95%D7%A0%D7%94-%D7%9B%D7%95%D7%9C%D7%9C%D7%AA-%D7%A1%D7%98%D7%A8%D7%95%D7%A0%D7%92%D7%94%D7%95%D7%9C%D7%93-%D7%97%D7%AA%D7%95%D7%9C.jpg", 189
- ),
- new Product(
- "Ear & eye drops",
- 11,
- "https://encrypted-tbn3.gstatic.com/shopping?q=tbn:ANd9GcR_gi6ZjmjE7NZQ4rig15PDbSPwy-oXu6tykhosqgx10dKbBJkNw6skcYje9p6zXtGxY8YWNyJVMcnM90I2_Z1I42bp7rr-xrv67OKhUqfIiEWV000cSp07&usqp=CAc", 38
- ),
- new Product(
- "Medicine dispenser",
- 5,
- "data:image/jpeg;base64,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", 12
- ),
- new Product(
- "Anti-anxiety 45 tablets",
- 20,
- "https://cloudinary.images-iherb.com/image/upload/f_auto,q_auto:eco/images/eur/eur02024/v/32.jpg", 100
- ),
- new Product(
- "PROTECTION",
- 15,
- "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRAiQzIT3G-b0z6Bsr1bVkSMHlOBM4lKxw70MiRkres5DGVNiigWbRnWcNNfRpEVu-mXyY&usqp=CAU", 65
- ),
-];
-
-let products: Product[] = getProductsFromLocalStorage();
-
-function getProductsFromLocalStorage() {
- try {
- const productsString = localStorage.getItem("products");
- if (!productsString) {
- localStorage.setItem("products", JSON.stringify(firstProducts));
- return firstProducts;
- } else {
- const productsArray = JSON.parse(productsString);
- const products = productsArray.map((pro) => {
- return new Product(pro.name, pro.amount, pro.imgSrc, pro.price);
- });
- return products;
- }
- } catch (error) {
- console.error(error);
- return [];
- }
-}
-
-function renderProducts() {
- const html = products
- .map((product) => {
- if (!product.isEdit)
- return `
->>>>>>> 7473a3df52bf457216d9852d7b1fca3092105c27
-
-
- delete
-
edit
-
-<<<<<<< HEAD
-
${product.name}
-=======
-
${product.name} ${product.price}₪ per unit
->>>>>>> 7473a3df52bf457216d9852d7b1fca3092105c27
-
+
-
${product.amount}
-
-
-
- `;
-<<<<<<< HEAD
- else
- return `
-=======
- else
- return `
->>>>>>> 7473a3df52bf457216d9852d7b1fca3092105c27
-
-
delete
-
edit
-
-
-<<<<<<< HEAD
-
${product.name}
-
+
-
-
-
-
- `;
- })
- .join(" ");
-
- const root = document.querySelector("#productGallery") as HTMLDivElement;
- root.innerHTML = html;
- }
-
- function addToProduct(productId: string) {
- const chosenPro: Product = products.find((pro) => pro.id === productId)!;
- if (chosenPro) {
- chosenPro.amount++;
- renderProducts();
- updateInLocalStorage();
- }
- }
- function reduceFromProduct(productId: string) {
- const chosenPro: Product = products.find((pro) => pro.id === productId)!;
- if (chosenPro && chosenPro.amount > 0) {
- chosenPro.amount--;
- renderProducts();
- updateInLocalStorage();
- }
- }
-
- function deleteProduct(productId: string) {
- const indexToRemoved = products.findIndex((pro) => pro.id === productId);
-
- products.splice(indexToRemoved, 1);
- updateInLocalStorage();
- renderProducts();
- }
-
- function editProduct(event: any, productId: string) {
- try {
- const productToEdit: Product = products.find(
- (pro) => pro.id === productId,
- )!;
- if (!productToEdit) throw new Error("couldn't fined productToEdit ");
- if (productToEdit.isEdit == true) {
- const amountValue =
- event.target.parentNode.parentNode.querySelector("input").value;
- productToEdit.amount = amountValue;
- productToEdit.setEdit(false);
- renderProducts();
- } else {
- productToEdit.setEdit(true);
- renderProducts();
- }
- updateInLocalStorage();
- renderProducts();
- } catch (error) {
- console.error(error);
- }
- }
-
- function updateInLocalStorage() {
- localStorage.setItem("products", JSON.stringify(products));
- }
-
- function renderAddProductForm() {
- const root: HTMLDivElement = document.querySelector(
- ".addProductForm",
- ) as HTMLDivElement;
- root.classList.toggle("active");
- if (root.classList.contains("active")) {
- const btn = document.querySelector("#addProductBtn") as HTMLButtonElement;
- btn.innerHTML = ` x `;
- } else {
- const btn = document.querySelector("#addProductBtn") as HTMLButtonElement;
- btn.innerHTML = "+";
- }
- root.innerHTML = `
-=======
- ${product.name} ${product.price}₪
- +
-
-
- -
-
- `;
- })
- .join(" ");
-
- const root = document.querySelector("#productGallery") as HTMLDivElement;
- root.innerHTML = html;
-}
-
-function addToProduct(productId: string) {
- const chosenPro: Product = products.find((pro) => pro.id === productId)!;
- if (chosenPro) {
- chosenPro.amount++;
- renderProducts();
- updateInLocalStorage();
- }
-}
-function reduceFromProduct(productId: string) {
- const chosenPro: Product = products.find((pro) => pro.id === productId)!;
- if (chosenPro && chosenPro.amount > 0) {
- chosenPro.amount--;
- renderProducts();
- updateInLocalStorage();
- }
-}
-
-function deleteProduct(productId: string) {
- const indexToRemoved = products.findIndex((pro) => pro.id === productId);
-
- products.splice(indexToRemoved, 1);
- updateInLocalStorage();
- renderProducts();
-}
-
-function editProduct(event: any, productId: string) {
- try {
- const productToEdit: Product = products.find(
- (pro) => pro.id === productId,
- )!;
- if (!productToEdit) throw new Error("couldn't fined productToEdit ");
- if (productToEdit.isEdit == true) {
- const amountValue =
- event.target.parentNode.parentNode.querySelector("input").value;
- productToEdit.amount = amountValue;
- productToEdit.setEdit(false);
- renderProducts();
- } else {
- productToEdit.setEdit(true);
- renderProducts();
- }
- updateInLocalStorage();
- renderProducts();
- } catch (error) {
- console.error(error);
- }
-}
-
-function updateInLocalStorage() {
- localStorage.setItem("products", JSON.stringify(products));
-}
-
-function renderAddProductForm() {
- const root: HTMLDivElement = document.querySelector(
- ".addProductForm",
- ) as HTMLDivElement;
- root.classList.toggle("active");
- if (root.classList.contains("active")) {
- const btn = document.querySelector("#addProductBtn") as HTMLButtonElement;
- btn.innerHTML = ` x `;
- } else {
- const btn = document.querySelector("#addProductBtn") as HTMLButtonElement;
- btn.innerHTML = "+";
- }
- root.innerHTML = `
->>>>>>> 7473a3df52bf457216d9852d7b1fca3092105c27
- `;
- }
-
- function handelNewProduct(ev: any) {
- ev.preventDefault();
- const newName = ev.target.newName.value;
- const newAmount = ev.target.newAmount.value;
- const newImgSrc = ev.target.newImgSrc.value;
-
- products = getProductsFromLocalStorage();
- products.push(new Product(newName, newAmount, newImgSrc));
- renderProducts();
- const root: HTMLDivElement = document.querySelector(".addProductForm")!;
- root.innerHTML = "";
- root.classList.toggle("active");
- const btn = document.querySelector("#addProductBtn") as HTMLButtonElement;
- btn.innerHTML = "+";
- }
-
- function searchProducts(event: any) {
- const textToSearch = event.target.value.toLowerCase();
- products.forEach((product) => {
- const element = document.querySelector( `[name= "${product.name}" ]`,) as HTMLDivElement;
- if (!product.name.toLowerCase().includes(textToSearch))
- element.classList.add("isntFound");
- else element.classList.remove("isntFound");
- });
- }
-
-=======
- Image address:
-
- Price:
-
- ADD
- `;
-}
-
-function handelNewProduct(ev: any) {
- ev.preventDefault();
- const newName = ev.target.newName.value;
- const newAmount = ev.target.newAmount.value;
- const newImgSrc = ev.target.newImgSrc.value;
- const newPrice = ev.target.newPrice.value;
-
- products = getProductsFromLocalStorage();
- products.push(new Product(newName, newAmount, newImgSrc, newPrice));
- renderProducts();
- updateInLocalStorage();
- const root: HTMLDivElement = document.querySelector(".addProductForm")!;
- root.innerHTML = "";
- root.classList.toggle("active");
- const btn = document.querySelector("#addProductBtn") as HTMLButtonElement;
- btn.innerHTML = "+";
-}
-
-function searchProducts(event: any) {
- const textToSearch = event.target.value.toLowerCase();
- products.forEach((product) => {
- const element = document.querySelector(`[name= "${product.name}" ]`,) as HTMLDivElement;
- if (!product.name.toLowerCase().includes(textToSearch))
- element.classList.add("isntFound");
- else element.classList.remove("isntFound");
- });
-}
->>>>>>> 7473a3df52bf457216d9852d7b1fca3092105c27
diff --git a/04-Typescript/19-PersonalProject/Lee/pages/vaccines.html b/04-Typescript/19-PersonalProject/Lee/pages/vaccines.html
deleted file mode 100644
index 7848bfffa..000000000
--- a/04-Typescript/19-PersonalProject/Lee/pages/vaccines.html
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-<<<<<<< HEAD
-
-
-
- Document
-
-
-
-
-=======
-
-
-
-
- Vaccines
-
-
-
-
-
-
->>>>>>> 7473a3df52bf457216d9852d7b1fca3092105c27
-
-
\ No newline at end of file
diff --git a/04-Typescript/19-PersonalProject/Lee/pages/vaccines.scss b/04-Typescript/19-PersonalProject/Lee/pages/vaccines.scss
deleted file mode 100644
index 6fbf6e353..000000000
--- a/04-Typescript/19-PersonalProject/Lee/pages/vaccines.scss
+++ /dev/null
@@ -1,66 +0,0 @@
-html {
-
- display: flex;
- justify-content: center;
-
-
- body {
- background-color: #a2f1f1;
- font-family: "Quicksand", sans-serif;
- font-size: 18px;
- font-weight: bold;
-
-
-form {
- // border: 2px solid rgb(76, 76, 76);
- border-radius: 15px;
- margin: 2rem;
- padding: 2rem;
-
- h2 {
- display: flex;
- justify-content: center;
- text-shadow: 1px 3px 3px rgba(0, 0, 0, 0.5);
- }
-
- input {
- margin-left: 1rem;
- height: 20px;
- width: 250px;
- border-radius: 7px;
- }
-
-}
-
-.card {
-display: flex;
-flex-direction: column;
-margin: auto;
-margin-bottom: 1.3rem;width: 380px;
-height: 400px;
-gap: .7rem;
-border-radius: 25px;
-box-shadow: 1px 3px 3px rgba(0, 0, 0, 0.5);
-text-align: center;
-
-
-
-input {
- display: flex;
- justify-content: center;
- margin-left: 3.5rem;
- height: 25px;
-
-}
-
-p {
- background-color: #4fb6b6;
-
- box-sizing: content-box;
- border-radius: 5px;
- border-bottom-right-radius: 7px;
- border-bottom-left-radius: 7px;
-}
-}
-}
-}
\ No newline at end of file
diff --git a/04-Typescript/19-PersonalProject/Lee/pages/view.ts b/04-Typescript/19-PersonalProject/Lee/pages/view.ts
deleted file mode 100644
index 789d93fb7..000000000
--- a/04-Typescript/19-PersonalProject/Lee/pages/view.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-const hamburger = document.querySelector(".hamburger");
-const navLinks = document.querySelector(".nav__links");
-const links = document.querySelector(".nav__links li");
-
-hamburger?.addEventListener('click', ()=>{
- navLinks?.classList.toggle("open");
- links.forEach(link => {
- link.classList.toggle("fade");
- });
-
-
-
-hamburger.classList.toggle("toggle");
-
-});
-
diff --git a/04-Typescript/19-PersonalProject/Lee/style.scss b/04-Typescript/19-PersonalProject/Lee/style.scss
deleted file mode 100644
index 8f69f8885..000000000
--- a/04-Typescript/19-PersonalProject/Lee/style.scss
+++ /dev/null
@@ -1,118 +0,0 @@
-* {
- margin: 0;
- padding: 0;
- box-sizing: border-box;
- font-family: "Quicksand", sans-serif;
-}
-
-html {
- font-size: 62.5%;
- user-select: none;
-
-
-.container {
- width: 100%;
- height: 100vh;
- background-color: rgb(15, 215, 215);
- color: #eee;
- display: flex;
- justify-content: center;
- align-items: center;
-
-
-.calendar {
- width: 45rem;
- height: 52rem;
- background-color: rgb(109, 110, 110);
- box-shadow: 0 0.5rem 3rem rgba(0,0,0,0.4);
-}
-
-.month {
- width: 100%;
- height: 12rem;
- background-color: rgb(3, 161, 161);
- display: flex;
- justify-content: space-between;
- align-items: center;
- padding: 0 2rem;
- text-align: center;
- text-shadow: 0 .3rem .5rem rgba(0,0,0,0.4);
-}
-
-.month i {
- font-size: 2.5rem;
- cursor: pointer;
-}
-
-.month h1 {
- font-size: 3rem;
- font-weight: 400;
- letter-spacing: 0.2rem;
- margin-bottom: 1rem;
-}
-
-.month p {
- font-size: 1.6rem;
-}
-
-.weekdays {
- width: 100%;
- height: 5rem;
- padding: 0 0.4rem;
- display: flex;
- align-items: center;
-}
-
-.weekdays div {
- font-size: 1.5rem;
- font-weight: 400;
- letter-spacing: 0.1rem;
- width: calc(44.2rem/7);
- display: flex;
- justify-content: center;
- align-items: center;
- text-shadow: 0.3rem .5rem rgba(0,0,0,0.4);
-}
-
-.days {
- width: 100%;
- display: flex;
- flex-wrap: wrap;
- padding: 0.2rem;
-}
-
-.days div {
- font-size: 1.4rem;
- margin: 0.3rem;
- width: calc(40.2rem/7);
- height: 5rem;
- display: flex;
- justify-content: center;
- align-items: center;
- text-shadow: 0 .3rem .5rem rgba(0,0,0,0.5);
-
- &:hover:not(.today) {
- background-color: #7d7d7d;
- border-radius: 50%;
- border: 0.2rem solid #777;
- cursor: pointer;
-
- }
-}
-
-.prev-date, .next-date {
- opacity: 0.5;
-}
-
-.today {
- background-color: rgb(3, 161, 161);
- border-radius: 50%;
-
-
- &:hover {
- background-color: rgb(7, 165, 165);
-
- }
-}
-}
-}
\ No newline at end of file
diff --git a/04-Typescript/22-git/dist/style.css b/04-Typescript/22-git/dist/style.css
index be262b369..e69de29bb 100644
--- a/04-Typescript/22-git/dist/style.css
+++ b/04-Typescript/22-git/dist/style.css
@@ -1,3 +0,0 @@
-h1 {
- background-color: yellow;
-}
\ No newline at end of file
diff --git a/04-Typescript/22-git/features/admin/admin.html b/04-Typescript/22-git/features/admin/admin.html
new file mode 100644
index 000000000..e69de29bb
diff --git a/04-Typescript/22-git/features/admin/admin.ts b/04-Typescript/22-git/features/admin/admin.ts
new file mode 100644
index 000000000..e69de29bb
diff --git a/04-Typescript/22-git/features/admin/dist/admin.js b/04-Typescript/22-git/features/admin/dist/admin.js
new file mode 100644
index 000000000..e69de29bb
diff --git a/04-Typescript/22-git/features/admin/dist/style.css b/04-Typescript/22-git/features/admin/dist/style.css
new file mode 100644
index 000000000..1bb68ddf5
--- /dev/null
+++ b/04-Typescript/22-git/features/admin/dist/style.css
@@ -0,0 +1,3 @@
+body {
+ background-color: black;
+}
\ No newline at end of file
diff --git a/04-Typescript/22-git/features/admin/style.scss b/04-Typescript/22-git/features/admin/style.scss
new file mode 100644
index 000000000..c4d554e05
--- /dev/null
+++ b/04-Typescript/22-git/features/admin/style.scss
@@ -0,0 +1,3 @@
+body {
+ background-color: black;
+}
diff --git a/04-Typescript/22-git/features/general/dist/general.css b/04-Typescript/22-git/features/general/dist/general.css
new file mode 100644
index 000000000..88cb00c52
--- /dev/null
+++ b/04-Typescript/22-git/features/general/dist/general.css
@@ -0,0 +1,3 @@
+body {
+ background-color: red;
+}
\ No newline at end of file
diff --git a/04-Typescript/22-git/features/general/general.scss b/04-Typescript/22-git/features/general/general.scss
new file mode 100644
index 000000000..438954d36
--- /dev/null
+++ b/04-Typescript/22-git/features/general/general.scss
@@ -0,0 +1,3 @@
+body {
+ background-color: red;
+}
\ No newline at end of file
diff --git a/04-Typescript/22-git/features/inventory/dist/invnetory.css b/04-Typescript/22-git/features/inventory/dist/invnetory.css
new file mode 100644
index 000000000..e69de29bb
diff --git a/04-Typescript/22-git/features/inventory/inventory.html b/04-Typescript/22-git/features/inventory/inventory.html
new file mode 100644
index 000000000..928a7b981
--- /dev/null
+++ b/04-Typescript/22-git/features/inventory/inventory.html
@@ -0,0 +1,13 @@
+
+
+
+
+
+ Document
+
+
+
+
+ Inventory Feature
+
+
\ No newline at end of file
diff --git a/04-Typescript/22-git/features/inventory/invnetory.scss b/04-Typescript/22-git/features/inventory/invnetory.scss
new file mode 100644
index 000000000..e69de29bb
diff --git a/04-Typescript/19-PersonalProject/Lee/pages/treatments.html b/04-Typescript/22-git/features/login/login.html
similarity index 72%
rename from 04-Typescript/19-PersonalProject/Lee/pages/treatments.html
rename to 04-Typescript/22-git/features/login/login.html
index d6922c785..d37bea8d3 100644
--- a/04-Typescript/19-PersonalProject/Lee/pages/treatments.html
+++ b/04-Typescript/22-git/features/login/login.html
@@ -4,9 +4,9 @@
Document
-
+
-
+ Login