diff --git a/index.html b/index.html index a39dee43..2b559044 100644 --- a/index.html +++ b/index.html @@ -1,24 +1,62 @@ + + + + + + AltSchool OpenSource Names + - - - - - - AltSchool OpenSource Names - - - -
- -
-
-

AltSchool Africa OpenSource Contributors

-
-
- - - - - \ No newline at end of file + +
+ +
+ + +
+
+
+

AltSchool Africa OpenSource Contributors

+
+
+ + + + diff --git a/names.txt b/names.txt index cee0289d..295195eb 100644 --- a/names.txt +++ b/names.txt @@ -1,19 +1,38 @@ Osariemen Aibueku Olayinka Daniel +Ekene Ikogbwe TechMomma Okonkwo +Abdulhameed Busari Tatyana Effa Adeyemi Akinyemi +Ismaila Yunusa +Oyediran Michael A. Nwabuwa Philip Emeka +Anyi Joy Oluomachukwu +Ogunmuyiwa Oluwapelumi +Adebanjo Abolanle Mary Ephraim Haruna Mamman +Martins Umekwe +Ojo Stephen +Munir Adavize Abdullahi +Chigozie Oziri Obiorah Ignatius Michael Chijioke Nweke Lawal Ayobami +Kamal Mustapha +Bukola Idowu Ozuem Eugene +Emmanuel Nwaji +Gbemisola Oduwaiye Oluwasetemi Ojo Muhammad Ibrahim +Adekola Oluwatoniloba Emmanuel Onyegbuchunam Julian Ifesiokwu Sonde Omobolaji Hameen +Oluwatoyin Jolaoso Sharafdeen Quadri +Yaqub Olawale +Olanrewaju Kabiru Eloghosa Morgan Modupe Edith Yeku Daniel Amadi @@ -21,7 +40,9 @@ Adeyinka Michael Abdulbasit Yusuf Allename Anthony Adeagbo Toheeb +Hassana Abdullahi Blessing Nfeh +Henry Okam Jason Kojo Simtema Adeola Adetunji Emmanuel Oloke @@ -30,19 +51,23 @@ Zacheus Oluwasegun Israel Victor Abbah Mamodu Joshua Shoyombo Gabriel Ayomide +Onosemuode Ikuesiri Kola Carmen Amba Imonikosaye Omafovbe Benjamin Nomba Success Chikezie +Toyyib Muhammad-Jamiu Ayush Yadav Ayoola Paul Omitogun Olamide Gideon Anyalewechi Linda Akorfa Abotsigah +Shibam Acharya +Ademiju Peter Raphael Ibrahim Popoola Emmanuel -MAxwell Ahmadu Gideon Aleonogwe +Elizabeth Agwa Oluwaseun Abiola Francis Theophilous Ahachi John @@ -67,7 +92,9 @@ Ojerinde Joel Ayodola Otutuloro Austin Wopara Titilola Oduwole +Nwadirioha David Awosise Oluwaseun +Avose Peace Adetayo Akinsanya Samuel Segun Samuel Owolabi Segun @@ -78,6 +105,7 @@ Nwachukwu Esther Allen Enyi Temitope Agbaje Adenuga Mary +Oluchi Nwankwo Chibuokem Egbuchulam Okhuarobo Osayuki Ayibakepreye Omusuku @@ -85,9 +113,11 @@ Adeniyi Olanrewaju Mark Anob Takon Raji Risikat Yewande Shittu Saheed Adewale +Oluchukwu Edeh Maxwell Emmanuel Jamilu Jibrilla Olaegbe Abdul-Rahmon +Ndubuisi Uchenna Ollawa Matthew Mosimabale Tarfa AbdulRahman Irede Oke Adelakun Wasiu Olaiya @@ -101,6 +131,8 @@ Taladeogo Abraham Hafiz Adeyinka Junaid Damilola Samuel Michael Abaniwo +Isaac Imonivwerha +Oluwakamiye Ayandele Mary Olawale Mustapha Ayomide Kehinde Osayamen Imarhiagbe @@ -110,13 +142,17 @@ Israel Zorzor Faboya Basil Korede Marliyya ubam Samson Okeji +Omage Sandra +John Ekunola Abiodun Omonijo Egu Chinedu David Nyong James Uyi Yusuf Salim +Adenrele-Onikosi Kofoworola Adisa Barakat Adekemi Mgbemena Chimaobi Ephraim +Lucky Abiom Lucious Charchea Simon Oluwaseyi Akinnawo Sam Abasifreke @@ -135,12 +171,14 @@ Aliyu Gambo Aliyu Michael Ashibuogwu Clinton Mekwunye Lilian Anya Galadima +Odunze Jennifer Oluchukwu Oyindamola Kushimo Okoro Gift Emmanuel kabari Tanimu Haruna Nnah Ifeoma Goodness Uwaoma Cyrus +Ayodeji Temidayo Okulaja Blessing Peter Faruq Adelodun Esther Ibom @@ -149,11 +187,14 @@ Tobiloba Sobayo Ibimina Hart Oluwapelumi Odueso Peter D. Ogunjinmi +Hauwa Ibrahim Abdulkareem Babatunde Bukola Testimony mbanugo franklyn Motunrayo Ilawole +Samuel Warrie Nonso Ugbodu +Ekpa Daniel Egwoke Olarotimi Adamson Moyinoluwa Adelowo Onuche Uhiene Achema @@ -180,7 +221,10 @@ Ope Kareem David Olaleye Gladys Oviawe Mary Omode +Olatunji Muiz Olasunkanmi Ayo Owolabi +Favour Obajimi +Japheth Olayide Jessica Noah Useghan Benjamin Edivri Oseghale Eseosa Favour @@ -188,12 +232,14 @@ Jonah C. Uka Sarah Daniel Madamori Joyce Akinsulere Olajobi +Alexander Oweka Olumide Gbadegesin Oluwatosin Lasisi Sifon Solomon Odunayo Davies Idowu Owolabi Babatunde Omoregbe Daniel +Nwabuisi Chidinma Cindy Robert Adoga Taiwo Stephen Opeyemi Aghwotu Onoriode Akpobo @@ -203,6 +249,7 @@ Owojori Micheal Dahunsi Timilehin Osunronbi Okikiola Qudus Okoyomoh Adenomoh +Favour Oluchi Boi Akande Oladayo Odufejo Ufoma Ibukunoluwa Charles Obuzor @@ -243,12 +290,14 @@ Ayodeji Oladeinde Dannon Abayomi David Odoma Yakub Bakare Olla Olamide +CHUKWUMA ABUNDANCE Sarah Aligbe Onyia Edna Chidinma Oloto Samson Sulaiman Yahaya Adamu Alabi Olalekan Emmanuel Samuel Akinmarin +Olanrewaju Shogbolu Adegboye Michael Olanrewaju Aminat Ahmed Samuel Aniekeme @@ -260,6 +309,7 @@ Babayemi Precious Olamide Ibraheem Muhammadawwal Precious Saiki Marrilyn Olungweonwi +Keshi Favour Chiamaka Ojoachele Onuh Marvellous .O. Chukueggu Adeyinka Oresanya @@ -275,6 +325,7 @@ Noibi Abdulrasaq Olamilekan Edet Emmanuel Asuquo Nwabueze Blessing Ugochi Ayomide Joshua Fabiyi +Gregory Ogbemudia Atinuke Wale-Awe Opeyemi Ogundeyi Sikiru Rashidat @@ -307,6 +358,7 @@ Marvellous Chukueggu Lewis Tanguhwar Obaloluwa Oladunjoye Prince Chimaobi +Aremu Oluwafunmilayo Patience Chinecherem Ugwuanyi Kingsley Kwesi Salvo Oyinkansola Shoroye @@ -315,6 +367,7 @@ Onyeanuna Prince Nwankwo Kingsley Uzoma Nzubechi Ahamefula Peace Ben +Daniel Kennie Madaki Awonuga Oluwapelumi R. Abegunde Olanrewaju Ebeledike Arinze Stanley @@ -335,31 +388,71 @@ Afabor Michael Onafome Kofoworola Oyinlola Cole Olagunju Oluwakolade Glory Yusuf +Babalola Adewale Olutayo Babem +Bashir Yesufu Alabi Ololade Kwentua Maryann Mbah Victor Somtochukwu Abdulrazzaq Fahd Achebe Okechukwu Peter +Onyekachi Fakoya George Owoh Bakare Rilwan Temitope Owhologbo Daniel Oghenemaro Oritsedere Precious Oghenerukevwe +Emem Moses Ekong Abdullahi Kwapke Chindo Nmesoma Olivia Akabogu Aniekan Sunday Edet +Durojaye Sekinat Abisola SnrDev Adeyanju-Fawaz kperusi famous sunday Adegoke Abdsalam Ajala Hameed Owoade John Adekoya Adebisi +Adepitan oyinlola +Emosairue Okiemute Daniel Taofeek ogungbade Olubunmi Oluwatobi James Marvellous chimaraoke Omokolade Adelekan +Juliana Hassan +Alonge Wonuola Emmanuel Chibuzor Isu-Idam Ayeni Olusola Jumoke +Saka Abass Olaide +light Ihechi Osita-Amaechi Precious Eseose Agboinghale Ajayi Emmanuel +Michael Ibinola +Emmanuel Odedele +Olumide D. Fakorede +Idowu Olakunle +Gloria John Damilola Ogun -Elijah Ishaku \ No newline at end of file +Elijah Ishaku +Favour Keshi Chiamaka +Abdulazeez Popoola +chukwuebuka gerard okolie +Akinlolu Gbemisola John +Okesanjo Quamarudeen Okedayo +Olabode Adetula +Habeeb Oluwagbenga Bankole +GAruba Abdul Azeez. +Victor Ubere +Victor Abolarin +Temitope Yusuff +Samuel Ume +Adebesin Adedayo +Tunde Wey +Mediat Yusuff +Osita Amaechi +David Martin +Akindana Akinbayowa +Obijiaku Obioma Chukwuma +Nasirullah Oladipo A +Gideon Victor Warrie +Duku Aghogho Mathida +Amuda Mohammed-Awwal Ayomide +Ubong Monday Ndoh diff --git a/resources/main.css b/resources/main.css index ce0d96c0..ef342882 100644 --- a/resources/main.css +++ b/resources/main.css @@ -1,100 +1,184 @@ -@import url('https://fonts.googleapis.com/css2?family=Sen:wght@400;800&display=swap'); +@import url("https://fonts.googleapis.com/css2?family=Sen:wght@400;800&display=swap"); :root { - --primary-color: #4a4a4a; - --secondary-color: rgb(252, 197, 17); - --secondary-color-hover: rgb(255, 198, 75); - --tertiary-color: #1a1a1a; - --quaternary-color: #f4f4f4; + --primary-color: #4a4a4a; + --secondary-color: rgb(252, 197, 17); + --secondary-color-hover: rgb(255, 198, 75); + --tertiary-color: #1a1a1a; + --quaternary-color: #f4f4f4; } html { - font-family: 'Sen', sans-serif; - min-height: 100vh; + font-family: "Sen", sans-serif; + min-height: 100vh; } body { - display: flex; - flex-direction: column; - align-items: center; - margin: 0 auto; - background-color: var(--tertiary-color); - color: var(--quaternary-color); - line-height: 1.7rem; - box-sizing: border-box; + display: flex; + flex-direction: column; + align-items: center; + margin: 0 auto; + background-color: var(--tertiary-color); + color: var(--quaternary-color); + line-height: 1.7rem; + box-sizing: border-box; +} + +body.light { + background-color: #fff6ea; + color: var(--tertiary-color); } #logo-area { - position: fixed; - top: 0; - width: 40%; - height: 100px; - margin-bottom: 1rem; - padding: 1rem 3rem; - background-color: #05070d; - text-align: center; - border-radius: 0 0 10px 10px; - z-index: 2; + position: fixed; + top: 0; + width: 40%; + height: 100px; + margin-bottom: 1rem; + padding: 1rem 3rem; + background-color: #05070d; + text-align: center; + border-radius: 0 0 10px 10px; + z-index: 2; } h1 { - color: var(--secondary-color); - text-align: center; - line-height: 1.3em; + color: var(--secondary-color); + text-align: center; + line-height: 1.3em; +} + +#headline:hover { + color: #ffff; + text-shadow: 2px 2px 2px #0c0244; } -#list-wrapper > h1:hover{ - color:#ffff; - text-shadow: 2px 2px 2px #0c0244; - +#headline.light { + color: #1a1a40; +} + +#headline.light:hover { + color: #ff8fb1; } #logo { - margin: 1rem 2rem; + margin: 1rem 2rem; } #list-wrapper { - position: relative; - top: 200px; - width: 60%; + position: relative; + top: 200px; + width: 60%; } #names-list { - font-size: 1.2rem; - line-height: 3em; - text-align: center; - z-index: 1; + font-size: 1.2rem; + line-height: 3em; + text-align: center; + z-index: 1; } #reload-btn { - width: 64px; - height: 64px; - border-radius: 50%; - margin: 1rem; - background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='h-5 w-5' viewBox='0 0 20 20' fill='%233a3a3a'%3E%3Cpath fill-rule='evenodd' d='M4 2a1 1 0 011 1v2.101a7.002 7.002 0 0111.601 2.566 1 1 0 11-1.885.666A5.002 5.002 0 005.999 7H9a1 1 0 010 2H4a1 1 0 01-1-1V3a1 1 0 011-1zm.008 9.057a1 1 0 011.276.61A5.002 5.002 0 0014.001 13H11a1 1 0 110-2h5a1 1 0 011 1v5a1 1 0 11-2 0v-2.101a7.002 7.002 0 01-11.601-2.566 1 1 0 01.61-1.276z' clip-rule='evenodd' /%3E%3C/svg%3E"); - background-size: 32px; - background-position: center; - background-repeat: no-repeat; - background-color: var(--secondary-color); - position: fixed; - bottom: 1rem; - right: 1rem; - cursor: pointer; - border: none; + width: 64px; + height: 64px; + border-radius: 50%; + margin: 1rem; + /* SVG NOW IN HTML FILE */ + /* background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='h-5 w-5' viewBox='0 0 20 20' fill='%233a3a3a'%3E%3Cpath fill-rule='evenodd' d='M4 2a1 1 0 011 1v2.101a7.002 7.002 0 0111.601 2.566 1 1 0 11-1.885.666A5.002 5.002 0 005.999 7H9a1 1 0 010 2H4a1 1 0 01-1-1V3a1 1 0 011-1zm.008 9.057a1 1 0 011.276.61A5.002 5.002 0 0014.001 13H11a1 1 0 110-2h5a1 1 0 011 1v5a1 1 0 11-2 0v-2.101a7.002 7.002 0 01-11.601-2.566 1 1 0 01.61-1.276z' clip-rule='evenodd' /%3E%3C/svg%3E"); */ + background-size: 32px; + background-position: center; + background-repeat: no-repeat; + background-color: var(--secondary-color); + position: fixed; + bottom: 1rem; + right: 1rem; + cursor: pointer; + border: none; +} + +#reload-btn svg { + fill: var(--primary-color); +} +#reload-btn.light svg { + fill: #f7e9d7; } #reload-btn:hover { - background-color: var(--secondary-color-hover); - transition: all 0.3s ease-in-out; + background-color: var(--secondary-color-hover); + transition: all 0.3s ease-in-out; +} + +#reload-btn.light { + background-color: #1a1a40; + fill: black; + background-size: 32px; + width: 64px; + height: 64px; +} + +#reload-btn.light:hover { + background-color: #38385c; +} + +/* THEME TOGGLE SWITCH */ +.toggle { + position: absolute; + top: 110px; + left: 350px; +} +.label { + position: relative; + background-color: #bbbbbb; + display: flex; + align-items: center; + justify-content: space-between; + padding: 5px; + height: 20px; + width: 50px; + border-radius: 50px; +} + +.checkbox { + opacity: 0; + position: absolute; +} + +.checkbox:checked + .label .ball { + transform: translateX(31px); +} + +.fa-moon { + fill: #222831; + height: 20px; + width: 20px; +} +.fa-sun { + fill: #f39c12; + height: 20px; + width: 20px; +} + +.ball { + position: absolute; + width: 22px; + height: 22px; + background-color: #fff; + top: 4px; + left: 3px; + border-radius: 50px; + transition: transform 0.2s linear; } /* Media Queries */ @media screen and (max-width: 1024px) { - #list-wrapper { - width: 80%; - } - - #logo-area { - width: 100%; - } -} \ No newline at end of file + #list-wrapper { + width: 80%; + } + + #logo-area { + width: 100%; + } + .toggle { + left: 200px; + } +} diff --git a/resources/script.js b/resources/script.js index 69bc9335..136ed5a4 100644 --- a/resources/script.js +++ b/resources/script.js @@ -12,4 +12,13 @@ xmlhttp.onreadystatechange = function () { } } xmlhttp.open("GET", "names.txt", true); -xmlhttp.send(); \ No newline at end of file +xmlhttp.send(); + +// THEME TOGGLE + +const checkbox = document.getElementById("checkbox"); +checkbox.addEventListener("change", () => { + document.body.classList.toggle("light"); + document.querySelector("#headline").classList.toggle("light"); + document.querySelector("#reload-btn").classList.toggle("light"); +}); \ No newline at end of file diff --git a/searchContributors.mjs b/searchContributors.mjs new file mode 100644 index 00000000..6ffcf26f --- /dev/null +++ b/searchContributors.mjs @@ -0,0 +1,43 @@ +import { readFile } from "fs/promises"; +import { dirname, join } from "path"; +import { EOL } from "os"; +import { fileURLToPath } from "url"; +import { createInterface } from "readline"; +import process from "process"; + +const __dirname = dirname(fileURLToPath(import.meta.url)); // Gets Current working directory + +const PATH_TO_FILE = join(__dirname, "names.txt"); + +const readline = createInterface({ + input: process.stdin, + output: process.stdout, +}); + +const searchHandler = async function (answer) { + try { + const searchQuery = answer.trim(); + if (!searchQuery) { + console.log(`\n\n You did not search for any contributor.`); + return; + } + const data = await readFile(PATH_TO_FILE, { encoding: "utf8" }); + const names = data.split(EOL); + const matchedNames = names.filter((name) => name.trim().toLowerCase().includes(searchQuery.toLowerCase())); + const header = `\n\nShowing results for "${searchQuery}"\n`; + if (!matchedNames.length) { + console.log(`${header}No match found!`); + return; + } + const toBeDisplayedResult = matchedNames.join(EOL); + console.log(`${header}${toBeDisplayedResult}`); + } catch (err) { + console.log("Opps! Something went wrong!"); + } finally { + readline.close(); + } +}; + +readline.question("Search contributors: ", searchHandler); + +// - TO USE, JUST "cd" INTO "altschool-opensource-names" DIRECTORY AND RUN "node searchContributors.mjs" \ No newline at end of file