├── 2023 ├── ed.line │ ├── educator-site │ │ ├── app │ │ │ ├── __init__.py │ │ │ ├── utils │ │ │ │ ├── __init__.py │ │ │ │ ├── generate_id.py │ │ │ │ └── __pycache__ │ │ │ │ │ ├── utils.cpython-312.pyc │ │ │ │ │ ├── __init__.cpython-312.pyc │ │ │ │ │ └── generate_id.cpython-312.pyc │ │ │ ├── migrations │ │ │ │ ├── __init__.py │ │ │ │ ├── __pycache__ │ │ │ │ │ ├── __init__.cpython-312.pyc │ │ │ │ │ ├── 0001_initial.cpython-312.pyc │ │ │ │ │ ├── 0002_alter_educator_pictures_image.cpython-312.pyc │ │ │ │ │ └── 0003_courseoverview_videos_alter_educator_pictures_image_and_more.cpython-312.pyc │ │ │ │ ├── 0002_alter_educator_pictures_image.py │ │ │ │ └── 0001_initial.py │ │ │ ├── templates │ │ │ │ └── src │ │ │ │ │ ├── error │ │ │ │ │ ├── delete_acc.html │ │ │ │ │ └── error_page.html │ │ │ │ │ ├── home │ │ │ │ │ └── pages │ │ │ │ │ │ ├── dash_home.html │ │ │ │ │ │ ├── analytics.html │ │ │ │ │ │ ├── _base_course.html │ │ │ │ │ │ ├── home.html │ │ │ │ │ │ └── update_user │ │ │ │ │ │ └── pfp.html │ │ │ │ │ └── others │ │ │ │ │ ├── others.html │ │ │ │ │ ├── privacy.html │ │ │ │ │ ├── terms.html │ │ │ │ │ ├── history.html │ │ │ │ │ ├── reviews.html │ │ │ │ │ └── careers.html │ │ │ ├── tests.py │ │ │ ├── __pycache__ │ │ │ │ ├── admin.cpython-312.pyc │ │ │ │ ├── apps.cpython-312.pyc │ │ │ │ ├── footer.cpython-312.pyc │ │ │ │ ├── forms.cpython-312.pyc │ │ │ │ ├── models.cpython-312.pyc │ │ │ │ ├── utils.cpython-312.pyc │ │ │ │ ├── views.cpython-312.pyc │ │ │ │ ├── __init__.cpython-312.pyc │ │ │ │ └── side_data.cpython-312.pyc │ │ │ ├── apps.py │ │ │ ├── admin.py │ │ │ ├── static │ │ │ │ └── scss │ │ │ │ │ ├── home │ │ │ │ │ └── pages │ │ │ │ │ │ └── home.scss │ │ │ │ │ ├── error │ │ │ │ │ └── error.scss │ │ │ │ │ ├── universal │ │ │ │ │ └── header.scss │ │ │ │ │ └── others │ │ │ │ │ ├── privacy.scss │ │ │ │ │ └── terms.scss │ │ │ ├── forms.py │ │ │ └── educator_courses.py │ │ ├── ed_teach │ │ │ ├── __init__.py │ │ │ ├── __pycache__ │ │ │ │ ├── urls.cpython-312.pyc │ │ │ │ ├── wsgi.cpython-312.pyc │ │ │ │ ├── __init__.cpython-312.pyc │ │ │ │ └── settings.cpython-312.pyc │ │ │ ├── asgi.py │ │ │ └── wsgi.py │ │ └── manage.py │ ├── learner-site │ │ ├── app │ │ │ ├── __init__.py │ │ │ ├── migrations │ │ │ │ ├── __init__.py │ │ │ │ └── __pycache__ │ │ │ │ │ └── __init__.cpython-312.pyc │ │ │ ├── static │ │ │ │ ├── scss │ │ │ │ │ ├── universal │ │ │ │ │ │ └── rightPage.scss │ │ │ │ │ └── error │ │ │ │ │ │ └── error.scss │ │ │ │ ├── js │ │ │ │ │ ├── footer.js │ │ │ │ │ └── login.js │ │ │ │ └── svg │ │ │ │ │ ├── landing │ │ │ │ │ ├── home-illustration.png │ │ │ │ │ ├── highlightminswatched_fe52bc4026_ca82eba8b0 (1).svg │ │ │ │ │ ├── highlightminswatched_fe52bc4026_ca82eba8b0.svg │ │ │ │ │ ├── hightlighteducators_c894789a76_58c2a07e52.svg │ │ │ │ │ ├── highlightgoals_96d24a04e7_a8e8de225d.svg │ │ │ │ │ ├── highlightfreecourses_bb697dbd44_47fe832f07.svg │ │ │ │ │ ├── ca.svg │ │ │ │ │ └── ssc.svg │ │ │ │ │ └── theme │ │ │ │ │ ├── dark_theme.svg │ │ │ │ │ └── light_theme.svg │ │ │ ├── templates │ │ │ │ └── src │ │ │ │ │ ├── universal │ │ │ │ │ └── rightPage.html │ │ │ │ │ ├── home │ │ │ │ │ └── pages │ │ │ │ │ │ ├── enrolled.html │ │ │ │ │ │ └── profile.html │ │ │ │ │ └── others │ │ │ │ │ └── others.html │ │ │ ├── models.py │ │ │ ├── tests.py │ │ │ ├── admin.py │ │ │ ├── __pycache__ │ │ │ │ ├── apps.cpython-312.pyc │ │ │ │ ├── admin.cpython-312.pyc │ │ │ │ ├── courses.cpython-312.pyc │ │ │ │ ├── footer.cpython-312.pyc │ │ │ │ ├── forms.cpython-312.pyc │ │ │ │ ├── models.cpython-312.pyc │ │ │ │ ├── utils.cpython-312.pyc │ │ │ │ ├── views.cpython-312.pyc │ │ │ │ ├── __init__.cpython-312.pyc │ │ │ │ ├── side_data.cpython-312.pyc │ │ │ │ ├── profile_data.cpython-312.pyc │ │ │ │ └── dashboard_data.cpython-312.pyc │ │ │ ├── apps.py │ │ │ └── forms.py │ │ ├── ed_line │ │ │ ├── __init__.py │ │ │ ├── __pycache__ │ │ │ │ ├── urls.cpython-312.pyc │ │ │ │ ├── wsgi.cpython-312.pyc │ │ │ │ ├── __init__.cpython-312.pyc │ │ │ │ └── settings.cpython-312.pyc │ │ │ ├── asgi.py │ │ │ ├── wsgi.py │ │ │ └── manage.py │ │ └── manage.py │ └── .github │ │ └── workflows │ │ └── django.yml ├── geoverify │ ├── Procfile │ ├── requirements.txt │ ├── keys.py │ └── README.md ├── uptime │ ├── README.md │ └── utils │ │ ├── __pycache__ │ │ ├── check_os.cpython-312.pyc │ │ ├── clean_url.cpython-312.pyc │ │ └── shell_output.cpython-312.pyc │ │ ├── check_os.py │ │ ├── shell_output.py │ │ └── clean_url.py ├── window-slider │ ├── icons │ │ ├── load.png │ │ ├── 1.png │ │ ├── 2.png │ │ ├── 3.png │ │ ├── 4.png │ │ ├── 5.png │ │ ├── 6.png │ │ ├── 3a.png │ │ ├── 3b.png │ │ ├── 3b_a.png │ │ ├── 3b_b.png │ │ ├── 3b_c.png │ │ ├── 3b_d.png │ │ ├── 3b_e.png │ │ ├── 3b_f.png │ │ ├── 3b_g.png │ │ ├── 3b_h.png │ │ ├── dots.png │ │ ├── menus.png │ │ ├── pics.png │ │ ├── three.png │ │ ├── threes.png │ │ ├── time.png │ │ ├── upload.png │ │ └── calendar.png │ ├── js │ │ ├── transition.js │ │ └── test.js │ ├── ts │ │ ├── transition.ts │ │ └── test.ts │ ├── jquery │ │ ├── test.js │ │ └── pics.js │ └── css │ │ ├── encrypt.css │ │ ├── 3b.css │ │ └── time.css ├── candies │ ├── README.md │ └── php_files │ │ ├── Q1b.php │ │ ├── Q1c.php │ │ ├── Q3.php │ │ ├── Q1a.php │ │ ├── Q4.php │ │ ├── Q9.php │ │ ├── Q5.php │ │ └── Q8.php └── api-fetch │ └── src │ ├── Dockerfile │ └── package.json ├── 2024 ├── gittify │ ├── create.py │ ├── delete.py │ ├── read.py │ ├── update.py │ ├── __init__.py │ ├── client │ │ ├── __init__.py │ │ ├── __pycache__ │ │ │ ├── client.cpython-312.pyc │ │ │ ├── __init__.cpython-312.pyc │ │ │ ├── class_module.cpython-312.pyc │ │ │ └── initialize.cpython-312.pyc │ │ └── initialize.py │ ├── colors │ │ ├── __init__.py │ │ ├── initialize.py │ │ └── __pycache__ │ │ │ ├── __init__.cpython-312.pyc │ │ │ ├── class_module.cpython-312.pyc │ │ │ └── initialize.cpython-312.pyc │ ├── errors │ │ ├── __init__.py │ │ ├── initialize.py │ │ ├── __pycache__ │ │ │ ├── __init__.cpython-312.pyc │ │ │ ├── class_module.cpython-312.pyc │ │ │ └── initialize.cpython-312.pyc │ │ └── class_module.py │ ├── monitor │ │ ├── __init__.py │ │ ├── utils │ │ │ ├── __init__.py │ │ │ ├── __pycache__ │ │ │ │ ├── __init__.cpython-312.pyc │ │ │ │ ├── check_os.cpython-312.pyc │ │ │ │ └── check_service.cpython-312.pyc │ │ │ ├── check_os.py │ │ │ └── check_service.py │ │ ├── __pycache__ │ │ │ ├── main.cpython-312.pyc │ │ │ ├── __init__.cpython-312.pyc │ │ │ ├── install.cpython-312.pyc │ │ │ ├── install_service.cpython-312.pyc │ │ │ └── continuous_script.cpython-312.pyc │ │ └── continuous_script.py │ ├── utils │ │ ├── __init__.py │ │ ├── shell_icons.py │ │ ├── __pycache__ │ │ │ ├── logs.cpython-312.pyc │ │ │ ├── __init__.cpython-312.pyc │ │ │ ├── check_os.cpython-312.pyc │ │ │ ├── help_log.cpython-312.pyc │ │ │ ├── templates.cpython-312.pyc │ │ │ ├── shell_icons.cpython-312.pyc │ │ │ └── check_authentic.cpython-312.pyc │ │ ├── check_authentic.py │ │ ├── check_os.py │ │ ├── logs.py │ │ ├── templates.py │ │ └── clean_url.py │ ├── structure.md │ └── format.json ├── covilla-blogs │ ├── app │ │ ├── __init__.py │ │ ├── migrations │ │ │ ├── __init__.py │ │ │ └── __pycache__ │ │ │ │ └── __init__.cpython-312.pyc │ │ ├── models.py │ │ ├── tests.py │ │ ├── admin.py │ │ ├── apps.py │ │ ├── api_delete.py │ │ ├── api_update.py │ │ └── templates │ │ │ └── src │ │ │ ├── error │ │ │ └── error.html │ │ │ └── utils │ │ │ └── header.html │ ├── blogs │ │ ├── __init__.py │ │ ├── __pycache__ │ │ │ ├── urls.cpython-312.pyc │ │ │ ├── wsgi.cpython-312.pyc │ │ │ ├── __init__.cpython-312.pyc │ │ │ └── settings.cpython-312.pyc │ │ ├── asgi.py │ │ └── wsgi.py │ ├── site_admin │ │ ├── __init__.py │ │ ├── migrations │ │ │ ├── __init__.py │ │ │ ├── __pycache__ │ │ │ │ ├── __init__.cpython-312.pyc │ │ │ │ └── 0001_initial.cpython-312.pyc │ │ │ └── 0001_initial.py │ │ ├── tests.py │ │ ├── admin.py │ │ ├── apps.py │ │ └── templates │ │ │ └── src │ │ │ └── admin_utils │ │ │ └── header.html │ ├── manage.py │ └── README.md ├── webstats │ ├── src │ │ ├── utils │ │ │ ├── userTraffic.ts │ │ │ ├── errors.ts │ │ │ ├── checkType.ts │ │ │ ├── getAspect.ts │ │ │ ├── activateTab.tsx │ │ │ ├── getTimeDate.ts │ │ │ ├── asciiBanner.ts │ │ │ ├── consoleAndTraffic │ │ │ │ └── console.tsx │ │ │ └── mergeSort.ts │ │ ├── app │ │ │ ├── error.tsx │ │ │ ├── favicon.png │ │ │ ├── [site] │ │ │ │ └── error.tsx │ │ │ ├── loading.tsx │ │ │ └── globals.css │ │ ├── decorators │ │ │ └── universals.ts │ │ ├── data │ │ │ ├── months.ts │ │ │ └── sitesOnPreview.ts │ │ └── components │ │ │ ├── mainData │ │ │ └── statsContainer │ │ │ │ ├── lastEntry │ │ │ │ └── LastEntry.tsx │ │ │ │ └── StatsContainer.css │ │ │ ├── siteList │ │ │ ├── SiteList.css │ │ │ └── SiteList.tsx │ │ │ ├── header │ │ │ └── Header.css │ │ │ └── templates │ │ │ ├── Download.tsx │ │ │ └── Refresh.tsx │ ├── next.config.mjs │ ├── postcss.config.js │ ├── next-env.d.ts │ ├── package.json │ ├── tsconfig.json │ ├── tailwind.config.ts │ └── README.md └── chronicle │ ├── src │ ├── components │ │ ├── (frontend) │ │ │ ├── Header │ │ │ │ ├── utils │ │ │ │ │ └── types.ts │ │ │ │ └── Header.tsx │ │ │ ├── (blog) │ │ │ │ ├── Comment │ │ │ │ │ ├── utils │ │ │ │ │ │ ├── constants.ts │ │ │ │ │ │ └── types.ts │ │ │ │ │ └── Comment.tsx │ │ │ │ ├── BlogArticle │ │ │ │ │ ├── utils │ │ │ │ │ │ └── types.ts │ │ │ │ │ └── logic │ │ │ │ │ │ └── SideDataTemplate.tsx │ │ │ │ ├── Comments │ │ │ │ │ └── Comments.tsx │ │ │ │ ├── Favorite │ │ │ │ │ ├── utils │ │ │ │ │ │ └── constants.ts │ │ │ │ │ └── Favorite.tsx │ │ │ │ ├── LikesDislikes │ │ │ │ │ └── utils │ │ │ │ │ │ ├── types.ts │ │ │ │ │ │ └── constants.ts │ │ │ │ ├── BlogMiniCard │ │ │ │ │ └── utils │ │ │ │ │ │ └── types.ts │ │ │ │ └── Share │ │ │ │ │ └── Share.tsx │ │ │ ├── CategoryTabs │ │ │ │ └── utils │ │ │ │ │ └── types.ts │ │ │ ├── (atomic) │ │ │ │ ├── CommentBubble │ │ │ │ │ ├── static │ │ │ │ │ │ └── styles │ │ │ │ │ │ │ └── commentBox.module.css │ │ │ │ │ └── utils │ │ │ │ │ │ └── types.ts │ │ │ │ ├── Avatar │ │ │ │ │ ├── utils │ │ │ │ │ │ └── types.ts │ │ │ │ │ └── Avatar.tsx │ │ │ │ ├── NewComment │ │ │ │ │ └── utils │ │ │ │ │ │ └── types.ts │ │ │ │ ├── LoadMore │ │ │ │ │ └── LoadMore.tsx │ │ │ │ └── Copy │ │ │ │ │ └── Copy.tsx │ │ │ ├── Footer │ │ │ │ └── utils │ │ │ │ │ └── types.ts │ │ │ ├── AllBlogs │ │ │ │ ├── utils │ │ │ │ │ └── types.ts │ │ │ │ └── AllBlogs.tsx │ │ │ ├── (reader) │ │ │ │ ├── ReaderSettings │ │ │ │ │ ├── utils │ │ │ │ │ │ ├── constants.ts │ │ │ │ │ │ └── types.ts │ │ │ │ │ └── ReaderSettings.tsx │ │ │ │ ├── ReaderNavigation │ │ │ │ │ ├── static │ │ │ │ │ │ └── constants.tsx │ │ │ │ │ └── ReaderMobileNavigation.tsx │ │ │ │ └── ReaderCard │ │ │ │ │ └── static │ │ │ │ │ └── data.tsx │ │ │ ├── RecentlyRead │ │ │ │ ├── utils │ │ │ │ │ └── types.ts │ │ │ │ └── RecentlyRead.tsx │ │ │ ├── ThemeSwitch │ │ │ │ ├── functions │ │ │ │ │ └── toggleTheme.ts │ │ │ │ └── ThemeSwitch.tsx │ │ │ ├── Title │ │ │ │ └── utils │ │ │ │ │ ├── constants.ts │ │ │ │ │ └── types.ts │ │ │ ├── FeaturedBlogs │ │ │ │ ├── utils │ │ │ │ │ ├── constants.ts │ │ │ │ │ └── types.ts │ │ │ │ └── FeaturedBlogs.tsx │ │ │ ├── Tag │ │ │ │ └── Tag.tsx │ │ │ └── LinksList │ │ │ │ └── LinksList.tsx │ │ ├── pages │ │ │ └── BlogPage.tsx │ │ └── ui │ │ │ └── popover.tsx │ ├── common │ │ ├── constants │ │ │ ├── cookieKeys.ts │ │ │ ├── errorCodes.ts │ │ │ ├── domain.ts │ │ │ ├── author.ts │ │ │ ├── dateFormats.ts │ │ │ └── revalidateIntervals.ts │ │ ├── utils │ │ │ ├── __emptyFunction__.ts │ │ │ ├── getSlug.ts │ │ │ ├── typeCheck.ts │ │ │ └── inThousands.ts │ │ ├── links │ │ │ ├── generateLinks.ts │ │ │ ├── staticLinks.ts │ │ │ └── fetchRoutes.ts │ │ └── types │ │ │ ├── reactTypes.ts │ │ │ ├── apiTypes.ts │ │ │ ├── types.ts │ │ │ └── documents │ │ │ └── documents.ts │ ├── app │ │ ├── sitemap.ts │ │ ├── (admin) │ │ │ └── admin │ │ │ │ ├── (afterLogin) │ │ │ │ ├── blogs │ │ │ │ │ ├── page.tsx │ │ │ │ │ ├── error.tsx │ │ │ │ │ └── layout.tsx │ │ │ │ ├── analytics │ │ │ │ │ ├── page.tsx │ │ │ │ │ ├── error.tsx │ │ │ │ │ └── layout.tsx │ │ │ │ ├── dashboard │ │ │ │ │ ├── page.tsx │ │ │ │ │ ├── error.tsx │ │ │ │ │ └── layout.tsx │ │ │ │ └── structure │ │ │ │ │ ├── page.tsx │ │ │ │ │ ├── error.tsx │ │ │ │ │ └── layout.tsx │ │ │ │ └── layout.tsx │ │ ├── (frontend) │ │ │ ├── u │ │ │ │ ├── likes │ │ │ │ │ ├── page.tsx │ │ │ │ │ └── layout.tsx │ │ │ │ ├── favorites │ │ │ │ │ ├── page.tsx │ │ │ │ │ └── layout.tsx │ │ │ │ ├── settings │ │ │ │ │ ├── page.tsx │ │ │ │ │ └── layout.tsx │ │ │ │ ├── comments │ │ │ │ │ ├── page.tsx │ │ │ │ │ └── layout.tsx │ │ │ │ └── layout.tsx │ │ │ ├── [blogId] │ │ │ │ ├── error.tsx │ │ │ │ ├── page.tsx │ │ │ │ └── layout.tsx │ │ │ └── layout.tsx │ │ ├── api │ │ │ ├── footer │ │ │ │ ├── links │ │ │ │ │ └── route.ts │ │ │ │ ├── socials │ │ │ │ │ └── route.ts │ │ │ │ └── subtitle │ │ │ │ │ └── route.ts │ │ │ ├── blogs │ │ │ │ ├── route.ts │ │ │ │ └── [id] │ │ │ │ │ └── route.ts │ │ │ ├── images │ │ │ │ └── route.ts │ │ │ └── theme │ │ │ │ └── route.ts │ │ └── layout.tsx │ ├── lib │ │ └── utils.ts │ ├── server │ │ ├── supabase │ │ │ ├── client │ │ │ │ └── client.ts │ │ │ └── db │ │ │ │ ├── ids.ts │ │ │ │ └── tables.ts │ │ └── cookies │ │ │ └── theme.ts │ └── decorators │ │ └── blogData.module.css │ ├── README.md │ ├── postcss.config.mjs │ ├── next-env.d.ts │ ├── next.config.mjs │ ├── components.json │ ├── notes.md │ ├── tsconfig.json │ └── package.json └── README.md /2024/gittify/create.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /2024/gittify/delete.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /2024/gittify/read.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /2024/gittify/update.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /2024/gittify/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /2024/gittify/client/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /2024/gittify/colors/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /2024/gittify/errors/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /2024/gittify/monitor/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /2024/gittify/utils/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /2024/covilla-blogs/app/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /2024/covilla-blogs/blogs/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /2024/gittify/monitor/utils/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /2024/webstats/src/utils/userTraffic.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /2023/ed.line/educator-site/app/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /2023/ed.line/learner-site/app/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /2024/covilla-blogs/site_admin/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /2023/ed.line/educator-site/app/utils/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /2023/ed.line/educator-site/ed_teach/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /2023/ed.line/learner-site/ed_line/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /2024/covilla-blogs/app/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /2023/ed.line/educator-site/app/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /2023/ed.line/learner-site/app/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /2024/covilla-blogs/site_admin/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /2023/geoverify/Procfile: -------------------------------------------------------------------------------- 1 | web: gunicorn -w 8 server:app 2 | -------------------------------------------------------------------------------- /2024/chronicle/src/components/(frontend)/Header/utils/types.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /2023/ed.line/educator-site/app/templates/src/error/delete_acc.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /2023/ed.line/learner-site/app/static/scss/universal/rightPage.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /2023/ed.line/learner-site/app/templates/src/universal/rightPage.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /2023/ed.line/educator-site/app/templates/src/home/pages/dash_home.html: -------------------------------------------------------------------------------- 1 | HOME -------------------------------------------------------------------------------- /2023/ed.line/educator-site/app/templates/src/home/pages/analytics.html: -------------------------------------------------------------------------------- 1 | ANALYTICS -------------------------------------------------------------------------------- /2023/ed.line/learner-site/app/templates/src/home/pages/enrolled.html: -------------------------------------------------------------------------------- 1 | ENROLLMENTS -------------------------------------------------------------------------------- /2023/uptime/README.md: -------------------------------------------------------------------------------- 1 | # uptime 2 | automated file-folder manager for your OS 3 | -------------------------------------------------------------------------------- /2023/window-slider/icons/load.png: -------------------------------------------------------------------------------- 1 | TARGET 2 | 101010010000011010010100011110001011010100 -------------------------------------------------------------------------------- /2024/chronicle/README.md: -------------------------------------------------------------------------------- 1 | # My Blogs 2 | 3 | https://blogs.kushalkumarsaha.com/ (in beta) 4 | -------------------------------------------------------------------------------- /2023/ed.line/learner-site/app/templates/src/home/pages/profile.html: -------------------------------------------------------------------------------- 1 |

{{fname}}

2 |
3 | -------------------------------------------------------------------------------- /2024/chronicle/src/common/constants/cookieKeys.ts: -------------------------------------------------------------------------------- 1 | export const COOKIE_THEME_KEY = '__theme__' -------------------------------------------------------------------------------- /2024/covilla-blogs/app/models.py: -------------------------------------------------------------------------------- 1 | from django.db import models 2 | 3 | # Create your models here. 4 | -------------------------------------------------------------------------------- /2024/covilla-blogs/app/tests.py: -------------------------------------------------------------------------------- 1 | from django.test import TestCase 2 | 3 | # Create your tests here. 4 | -------------------------------------------------------------------------------- /2023/ed.line/learner-site/app/models.py: -------------------------------------------------------------------------------- 1 | from django.db import models 2 | 3 | # Create your models here. 4 | -------------------------------------------------------------------------------- /2023/ed.line/learner-site/app/tests.py: -------------------------------------------------------------------------------- 1 | from django.test import TestCase 2 | 3 | # Create your tests here. 4 | -------------------------------------------------------------------------------- /2024/covilla-blogs/app/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | 3 | # Register your models here. 4 | -------------------------------------------------------------------------------- /2024/covilla-blogs/site_admin/tests.py: -------------------------------------------------------------------------------- 1 | from django.test import TestCase 2 | 3 | # Create your tests here. 4 | -------------------------------------------------------------------------------- /2023/ed.line/educator-site/app/tests.py: -------------------------------------------------------------------------------- 1 | from django.test import TestCase 2 | 3 | # Create your tests here. 4 | -------------------------------------------------------------------------------- /2023/ed.line/learner-site/app/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | 3 | # Register your models here. 4 | -------------------------------------------------------------------------------- /2024/covilla-blogs/site_admin/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | 3 | # Register your models here. 4 | -------------------------------------------------------------------------------- /2023/window-slider/icons/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2023/window-slider/icons/1.png -------------------------------------------------------------------------------- /2023/window-slider/icons/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2023/window-slider/icons/2.png -------------------------------------------------------------------------------- /2023/window-slider/icons/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2023/window-slider/icons/3.png -------------------------------------------------------------------------------- /2023/window-slider/icons/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2023/window-slider/icons/4.png -------------------------------------------------------------------------------- /2023/window-slider/icons/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2023/window-slider/icons/5.png -------------------------------------------------------------------------------- /2023/window-slider/icons/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2023/window-slider/icons/6.png -------------------------------------------------------------------------------- /2023/ed.line/educator-site/app/utils/generate_id.py: -------------------------------------------------------------------------------- 1 | import uuid 2 | 3 | def generate_id(): 4 | return str(uuid.uuid1()) -------------------------------------------------------------------------------- /2023/window-slider/icons/3a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2023/window-slider/icons/3a.png -------------------------------------------------------------------------------- /2023/window-slider/icons/3b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2023/window-slider/icons/3b.png -------------------------------------------------------------------------------- /2024/webstats/src/app/error.tsx: -------------------------------------------------------------------------------- 1 | 'use client' 2 | 3 | export default function HomePageError() { 4 | return(null) 5 | } -------------------------------------------------------------------------------- /2023/window-slider/icons/3b_a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2023/window-slider/icons/3b_a.png -------------------------------------------------------------------------------- /2023/window-slider/icons/3b_b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2023/window-slider/icons/3b_b.png -------------------------------------------------------------------------------- /2023/window-slider/icons/3b_c.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2023/window-slider/icons/3b_c.png -------------------------------------------------------------------------------- /2023/window-slider/icons/3b_d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2023/window-slider/icons/3b_d.png -------------------------------------------------------------------------------- /2023/window-slider/icons/3b_e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2023/window-slider/icons/3b_e.png -------------------------------------------------------------------------------- /2023/window-slider/icons/3b_f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2023/window-slider/icons/3b_f.png -------------------------------------------------------------------------------- /2023/window-slider/icons/3b_g.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2023/window-slider/icons/3b_g.png -------------------------------------------------------------------------------- /2023/window-slider/icons/3b_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2023/window-slider/icons/3b_h.png -------------------------------------------------------------------------------- /2023/window-slider/icons/dots.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2023/window-slider/icons/dots.png -------------------------------------------------------------------------------- /2023/window-slider/icons/menus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2023/window-slider/icons/menus.png -------------------------------------------------------------------------------- /2023/window-slider/icons/pics.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2023/window-slider/icons/pics.png -------------------------------------------------------------------------------- /2023/window-slider/icons/three.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2023/window-slider/icons/three.png -------------------------------------------------------------------------------- /2023/window-slider/icons/threes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2023/window-slider/icons/threes.png -------------------------------------------------------------------------------- /2023/window-slider/icons/time.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2023/window-slider/icons/time.png -------------------------------------------------------------------------------- /2023/window-slider/icons/upload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2023/window-slider/icons/upload.png -------------------------------------------------------------------------------- /2024/webstats/src/app/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2024/webstats/src/app/favicon.png -------------------------------------------------------------------------------- /2023/window-slider/icons/calendar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2023/window-slider/icons/calendar.png -------------------------------------------------------------------------------- /2024/webstats/next.config.mjs: -------------------------------------------------------------------------------- 1 | /** @type {import('next').NextConfig} */ 2 | const nextConfig = {}; 3 | 4 | export default nextConfig; 5 | -------------------------------------------------------------------------------- /2024/webstats/postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | }; 7 | -------------------------------------------------------------------------------- /2024/webstats/src/decorators/universals.ts: -------------------------------------------------------------------------------- 1 | export const maxContentSpace = "max-w-[1280px] relative left-1/2 -translate-x-1/2" -------------------------------------------------------------------------------- /2024/chronicle/src/components/(frontend)/(blog)/Comment/utils/constants.ts: -------------------------------------------------------------------------------- 1 | export const DEFAULT_PLACEHOLDER = "Type a comment..." -------------------------------------------------------------------------------- /2024/webstats/src/data/months.ts: -------------------------------------------------------------------------------- 1 | export const MONTHS = [ 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' ] -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Noob projects 2 | 3 |
4 | 5 | - noob level projects collections of mine 6 | - also includes half-baked projects 7 | -------------------------------------------------------------------------------- /2024/chronicle/src/common/constants/errorCodes.ts: -------------------------------------------------------------------------------- 1 | export const ERROR_CODES = { 2 | SYNTAX_ERROR: { status: false, err: "syntax error" } 3 | }; -------------------------------------------------------------------------------- /2024/chronicle/src/components/(frontend)/CategoryTabs/utils/types.ts: -------------------------------------------------------------------------------- 1 | export type CategoryTabType = { label: string, link: string } -------------------------------------------------------------------------------- /2024/chronicle/src/common/constants/domain.ts: -------------------------------------------------------------------------------- 1 | import dotenv from 'dotenv' 2 | dotenv.config() 3 | 4 | export const DOMAIN = process.env.NEXT_PUBLIC_DOMAIN -------------------------------------------------------------------------------- /2024/gittify/colors/initialize.py: -------------------------------------------------------------------------------- 1 | from .class_module import Color 2 | 3 | col = Color() 4 | 5 | 6 | def beautifish_initalize(): 7 | return col -------------------------------------------------------------------------------- /2024/gittify/utils/shell_icons.py: -------------------------------------------------------------------------------- 1 | # shell icons ---------------------------------------- 2 | TICK = '\u2713' 3 | CROSS = '\u2715' 4 | DOT = '\u2022' 5 | -------------------------------------------------------------------------------- /2024/chronicle/src/common/constants/author.ts: -------------------------------------------------------------------------------- 1 | const DEFAULT_AUTHOR_NAME = "Anonymous" 2 | export const AUTHOR = process.env.AUTHOR || DEFAULT_AUTHOR_NAME -------------------------------------------------------------------------------- /2024/chronicle/src/components/(frontend)/(blog)/BlogArticle/utils/types.ts: -------------------------------------------------------------------------------- 1 | export type BlogTopHeadingType = { title:string, tag:string, date:Date } -------------------------------------------------------------------------------- /2024/chronicle/src/components/(frontend)/(blog)/Comments/Comments.tsx: -------------------------------------------------------------------------------- 1 | export default function Comments() { 2 | return ( 3 | <> 4 | ) 5 | } -------------------------------------------------------------------------------- /2024/chronicle/src/app/sitemap.ts: -------------------------------------------------------------------------------- 1 | import { MetadataRoute } from 'next' 2 | 3 | export default function sitemap(): MetadataRoute.Sitemap { 4 | return [] 5 | } -------------------------------------------------------------------------------- /2024/gittify/utils/__pycache__/logs.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2024/gittify/utils/__pycache__/logs.cpython-312.pyc -------------------------------------------------------------------------------- /2024/webstats/src/components/mainData/statsContainer/lastEntry/LastEntry.tsx: -------------------------------------------------------------------------------- 1 | 'use server' 2 | 3 | export async function LastEntry() { 4 | return (<>) 5 | } -------------------------------------------------------------------------------- /2023/uptime/utils/__pycache__/check_os.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2023/uptime/utils/__pycache__/check_os.cpython-312.pyc -------------------------------------------------------------------------------- /2023/uptime/utils/__pycache__/clean_url.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2023/uptime/utils/__pycache__/clean_url.cpython-312.pyc -------------------------------------------------------------------------------- /2024/chronicle/src/common/utils/__emptyFunction__.ts: -------------------------------------------------------------------------------- 1 | 'use server' 2 | 3 | export async function __emptyFunction__() { 4 | 'use server' 5 | return null 6 | } -------------------------------------------------------------------------------- /2024/gittify/client/__pycache__/client.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2024/gittify/client/__pycache__/client.cpython-312.pyc -------------------------------------------------------------------------------- /2024/gittify/errors/initialize.py: -------------------------------------------------------------------------------- 1 | from .class_module import Warning 2 | 3 | warn_client = Warning() 4 | 5 | def erroristic_initialize(): 6 | return warn_client -------------------------------------------------------------------------------- /2024/gittify/monitor/__pycache__/main.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2024/gittify/monitor/__pycache__/main.cpython-312.pyc -------------------------------------------------------------------------------- /2024/gittify/utils/__pycache__/__init__.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2024/gittify/utils/__pycache__/__init__.cpython-312.pyc -------------------------------------------------------------------------------- /2024/gittify/utils/__pycache__/check_os.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2024/gittify/utils/__pycache__/check_os.cpython-312.pyc -------------------------------------------------------------------------------- /2024/gittify/utils/__pycache__/help_log.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2024/gittify/utils/__pycache__/help_log.cpython-312.pyc -------------------------------------------------------------------------------- /2024/chronicle/src/app/(admin)/admin/(afterLogin)/blogs/page.tsx: -------------------------------------------------------------------------------- 1 | export default async function AdminLayout() { 2 | return ( 3 | <> 4 | 5 | ) 6 | } -------------------------------------------------------------------------------- /2024/covilla-blogs/blogs/__pycache__/urls.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2024/covilla-blogs/blogs/__pycache__/urls.cpython-312.pyc -------------------------------------------------------------------------------- /2024/covilla-blogs/blogs/__pycache__/wsgi.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2024/covilla-blogs/blogs/__pycache__/wsgi.cpython-312.pyc -------------------------------------------------------------------------------- /2024/gittify/client/__pycache__/__init__.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2024/gittify/client/__pycache__/__init__.cpython-312.pyc -------------------------------------------------------------------------------- /2024/gittify/colors/__pycache__/__init__.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2024/gittify/colors/__pycache__/__init__.cpython-312.pyc -------------------------------------------------------------------------------- /2024/gittify/errors/__pycache__/__init__.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2024/gittify/errors/__pycache__/__init__.cpython-312.pyc -------------------------------------------------------------------------------- /2024/gittify/monitor/__pycache__/__init__.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2024/gittify/monitor/__pycache__/__init__.cpython-312.pyc -------------------------------------------------------------------------------- /2024/gittify/monitor/__pycache__/install.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2024/gittify/monitor/__pycache__/install.cpython-312.pyc -------------------------------------------------------------------------------- /2024/gittify/utils/__pycache__/templates.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2024/gittify/utils/__pycache__/templates.cpython-312.pyc -------------------------------------------------------------------------------- /2023/uptime/utils/__pycache__/shell_output.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2023/uptime/utils/__pycache__/shell_output.cpython-312.pyc -------------------------------------------------------------------------------- /2024/chronicle/src/app/(admin)/admin/(afterLogin)/analytics/page.tsx: -------------------------------------------------------------------------------- 1 | export default async function AdminLayout() { 2 | return ( 3 | <> 4 | 5 | ) 6 | } -------------------------------------------------------------------------------- /2024/chronicle/src/app/(admin)/admin/(afterLogin)/dashboard/page.tsx: -------------------------------------------------------------------------------- 1 | export default async function AdminLayout() { 2 | return ( 3 | <> 4 | 5 | ) 6 | } -------------------------------------------------------------------------------- /2024/chronicle/src/app/(admin)/admin/(afterLogin)/structure/page.tsx: -------------------------------------------------------------------------------- 1 | export default async function AdminLayout() { 2 | return ( 3 | <> 4 | 5 | ) 6 | } -------------------------------------------------------------------------------- /2024/chronicle/src/common/constants/dateFormats.ts: -------------------------------------------------------------------------------- 1 | export const DATE_FORMAT = { 2 | MINI: 'MMM D', 3 | SHORT: 'MMM Do, YYYY', 4 | FULL: 'dddd Do MMMM, YYYY' 5 | } -------------------------------------------------------------------------------- /2024/chronicle/src/components/(frontend)/(atomic)/CommentBubble/static/styles/commentBox.module.css: -------------------------------------------------------------------------------- 1 | .commentBoxFragment { 2 | clip-path: polygon(0 0, 100% 0, 55% 100%); 3 | } -------------------------------------------------------------------------------- /2024/chronicle/src/components/(frontend)/Footer/utils/types.ts: -------------------------------------------------------------------------------- 1 | export type FooterLinksType = Array<{title: string, links: Array<{ label:string, link:string }> }> -------------------------------------------------------------------------------- /2024/gittify/client/__pycache__/class_module.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2024/gittify/client/__pycache__/class_module.cpython-312.pyc -------------------------------------------------------------------------------- /2024/gittify/client/__pycache__/initialize.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2024/gittify/client/__pycache__/initialize.cpython-312.pyc -------------------------------------------------------------------------------- /2024/gittify/colors/__pycache__/class_module.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2024/gittify/colors/__pycache__/class_module.cpython-312.pyc -------------------------------------------------------------------------------- /2024/gittify/colors/__pycache__/initialize.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2024/gittify/colors/__pycache__/initialize.cpython-312.pyc -------------------------------------------------------------------------------- /2024/gittify/errors/__pycache__/class_module.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2024/gittify/errors/__pycache__/class_module.cpython-312.pyc -------------------------------------------------------------------------------- /2024/gittify/errors/__pycache__/initialize.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2024/gittify/errors/__pycache__/initialize.cpython-312.pyc -------------------------------------------------------------------------------- /2024/gittify/utils/__pycache__/shell_icons.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2024/gittify/utils/__pycache__/shell_icons.cpython-312.pyc -------------------------------------------------------------------------------- /2023/ed.line/learner-site/app/__pycache__/apps.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2023/ed.line/learner-site/app/__pycache__/apps.cpython-312.pyc -------------------------------------------------------------------------------- /2024/covilla-blogs/blogs/__pycache__/__init__.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2024/covilla-blogs/blogs/__pycache__/__init__.cpython-312.pyc -------------------------------------------------------------------------------- /2024/covilla-blogs/blogs/__pycache__/settings.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2024/covilla-blogs/blogs/__pycache__/settings.cpython-312.pyc -------------------------------------------------------------------------------- /2024/gittify/utils/__pycache__/check_authentic.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2024/gittify/utils/__pycache__/check_authentic.cpython-312.pyc -------------------------------------------------------------------------------- /2024/webstats/src/app/[site]/error.tsx: -------------------------------------------------------------------------------- 1 | 'use client' 2 | 3 | export default function ErrorPage({ err }: { err:string }) { 4 | return ( 5 |

nothing

6 | ) 7 | } -------------------------------------------------------------------------------- /2023/ed.line/educator-site/app/__pycache__/admin.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2023/ed.line/educator-site/app/__pycache__/admin.cpython-312.pyc -------------------------------------------------------------------------------- /2023/ed.line/educator-site/app/__pycache__/apps.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2023/ed.line/educator-site/app/__pycache__/apps.cpython-312.pyc -------------------------------------------------------------------------------- /2023/ed.line/educator-site/app/__pycache__/footer.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2023/ed.line/educator-site/app/__pycache__/footer.cpython-312.pyc -------------------------------------------------------------------------------- /2023/ed.line/educator-site/app/__pycache__/forms.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2023/ed.line/educator-site/app/__pycache__/forms.cpython-312.pyc -------------------------------------------------------------------------------- /2023/ed.line/educator-site/app/__pycache__/models.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2023/ed.line/educator-site/app/__pycache__/models.cpython-312.pyc -------------------------------------------------------------------------------- /2023/ed.line/educator-site/app/__pycache__/utils.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2023/ed.line/educator-site/app/__pycache__/utils.cpython-312.pyc -------------------------------------------------------------------------------- /2023/ed.line/educator-site/app/__pycache__/views.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2023/ed.line/educator-site/app/__pycache__/views.cpython-312.pyc -------------------------------------------------------------------------------- /2023/ed.line/learner-site/app/__pycache__/admin.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2023/ed.line/learner-site/app/__pycache__/admin.cpython-312.pyc -------------------------------------------------------------------------------- /2023/ed.line/learner-site/app/__pycache__/courses.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2023/ed.line/learner-site/app/__pycache__/courses.cpython-312.pyc -------------------------------------------------------------------------------- /2023/ed.line/learner-site/app/__pycache__/footer.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2023/ed.line/learner-site/app/__pycache__/footer.cpython-312.pyc -------------------------------------------------------------------------------- /2023/ed.line/learner-site/app/__pycache__/forms.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2023/ed.line/learner-site/app/__pycache__/forms.cpython-312.pyc -------------------------------------------------------------------------------- /2023/ed.line/learner-site/app/__pycache__/models.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2023/ed.line/learner-site/app/__pycache__/models.cpython-312.pyc -------------------------------------------------------------------------------- /2023/ed.line/learner-site/app/__pycache__/utils.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2023/ed.line/learner-site/app/__pycache__/utils.cpython-312.pyc -------------------------------------------------------------------------------- /2023/ed.line/learner-site/app/__pycache__/views.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2023/ed.line/learner-site/app/__pycache__/views.cpython-312.pyc -------------------------------------------------------------------------------- /2024/gittify/monitor/__pycache__/install_service.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2024/gittify/monitor/__pycache__/install_service.cpython-312.pyc -------------------------------------------------------------------------------- /2024/gittify/monitor/utils/__pycache__/__init__.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2024/gittify/monitor/utils/__pycache__/__init__.cpython-312.pyc -------------------------------------------------------------------------------- /2024/gittify/monitor/utils/__pycache__/check_os.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2024/gittify/monitor/utils/__pycache__/check_os.cpython-312.pyc -------------------------------------------------------------------------------- /2023/ed.line/educator-site/app/__pycache__/__init__.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2023/ed.line/educator-site/app/__pycache__/__init__.cpython-312.pyc -------------------------------------------------------------------------------- /2023/ed.line/learner-site/app/__pycache__/__init__.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2023/ed.line/learner-site/app/__pycache__/__init__.cpython-312.pyc -------------------------------------------------------------------------------- /2023/ed.line/learner-site/app/__pycache__/side_data.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2023/ed.line/learner-site/app/__pycache__/side_data.cpython-312.pyc -------------------------------------------------------------------------------- /2023/ed.line/learner-site/ed_line/__pycache__/urls.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2023/ed.line/learner-site/ed_line/__pycache__/urls.cpython-312.pyc -------------------------------------------------------------------------------- /2023/ed.line/learner-site/ed_line/__pycache__/wsgi.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2023/ed.line/learner-site/ed_line/__pycache__/wsgi.cpython-312.pyc -------------------------------------------------------------------------------- /2024/chronicle/src/app/(frontend)/u/likes/page.tsx: -------------------------------------------------------------------------------- 1 | export default function ReaderLikes() { 2 | return ( 3 |
4 | Likes 5 |
6 | ) 7 | } -------------------------------------------------------------------------------- /2024/chronicle/src/common/constants/revalidateIntervals.ts: -------------------------------------------------------------------------------- 1 | export const BLOGPAGE_SSG_REVLAIDATION = 60 * 60 2 | export const BLOGPAGE_REVALIDATION = 10 * 60 -------------------------------------------------------------------------------- /2024/chronicle/src/common/utils/getSlug.ts: -------------------------------------------------------------------------------- 1 | export const getSlug = (str: string): string => 2 | str.replace(/[^a-zA-Z0-9]/g, ' ').split(' ').filter(x => x.trim() !== '').join('-').toLowerCase() -------------------------------------------------------------------------------- /2024/covilla-blogs/app/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class AppConfig(AppConfig): 5 | default_auto_field = 'django.db.models.BigAutoField' 6 | name = 'app' 7 | -------------------------------------------------------------------------------- /2024/gittify/monitor/__pycache__/continuous_script.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2024/gittify/monitor/__pycache__/continuous_script.cpython-312.pyc -------------------------------------------------------------------------------- /2023/ed.line/educator-site/app/__pycache__/side_data.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2023/ed.line/educator-site/app/__pycache__/side_data.cpython-312.pyc -------------------------------------------------------------------------------- /2023/ed.line/educator-site/app/utils/__pycache__/utils.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2023/ed.line/educator-site/app/utils/__pycache__/utils.cpython-312.pyc -------------------------------------------------------------------------------- /2023/ed.line/educator-site/ed_teach/__pycache__/urls.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2023/ed.line/educator-site/ed_teach/__pycache__/urls.cpython-312.pyc -------------------------------------------------------------------------------- /2023/ed.line/educator-site/ed_teach/__pycache__/wsgi.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2023/ed.line/educator-site/ed_teach/__pycache__/wsgi.cpython-312.pyc -------------------------------------------------------------------------------- /2023/ed.line/learner-site/app/__pycache__/profile_data.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2023/ed.line/learner-site/app/__pycache__/profile_data.cpython-312.pyc -------------------------------------------------------------------------------- /2023/ed.line/learner-site/app/static/js/footer.js: -------------------------------------------------------------------------------- 1 | 2 | document.querySelector(".aboutEdLineContainer .titleContainer").addEventListener("click", () => { 3 | window.location.href = "/home/"; 4 | }); -------------------------------------------------------------------------------- /2023/ed.line/learner-site/app/static/svg/landing/home-illustration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2023/ed.line/learner-site/app/static/svg/landing/home-illustration.png -------------------------------------------------------------------------------- /2023/ed.line/learner-site/ed_line/__pycache__/__init__.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2023/ed.line/learner-site/ed_line/__pycache__/__init__.cpython-312.pyc -------------------------------------------------------------------------------- /2023/ed.line/learner-site/ed_line/__pycache__/settings.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2023/ed.line/learner-site/ed_line/__pycache__/settings.cpython-312.pyc -------------------------------------------------------------------------------- /2023/window-slider/js/transition.js: -------------------------------------------------------------------------------- 1 | 2 | function fade() { 3 | var e = setTimeout(links, 2800); 4 | function links() { 5 | window.location.href = "index.html"; 6 | } 7 | 8 | } -------------------------------------------------------------------------------- /2023/window-slider/ts/transition.ts: -------------------------------------------------------------------------------- 1 | 2 | function fade() { 3 | var e = setTimeout(links, 2800); 4 | function links() { 5 | window.location.href = "index.html"; 6 | } 7 | 8 | } -------------------------------------------------------------------------------- /2024/chronicle/postcss.config.mjs: -------------------------------------------------------------------------------- 1 | /** @type {import('postcss-load-config').Config} */ 2 | const config = { 3 | plugins: { 4 | tailwindcss: {}, 5 | }, 6 | }; 7 | 8 | export default config; 9 | -------------------------------------------------------------------------------- /2024/chronicle/src/app/(admin)/admin/(afterLogin)/blogs/error.tsx: -------------------------------------------------------------------------------- 1 | 'use client' 2 | 3 | export default function ErrorPage() { 4 | return ( 5 |
An error occured
6 | ) 7 | } -------------------------------------------------------------------------------- /2024/covilla-blogs/app/migrations/__pycache__/__init__.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2024/covilla-blogs/app/migrations/__pycache__/__init__.cpython-312.pyc -------------------------------------------------------------------------------- /2024/gittify/monitor/utils/__pycache__/check_service.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2024/gittify/monitor/utils/__pycache__/check_service.cpython-312.pyc -------------------------------------------------------------------------------- /2023/ed.line/educator-site/app/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class AppConfig(AppConfig): 5 | default_auto_field = 'django.db.models.BigAutoField' 6 | name = 'app' 7 | -------------------------------------------------------------------------------- /2023/ed.line/educator-site/ed_teach/__pycache__/__init__.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2023/ed.line/educator-site/ed_teach/__pycache__/__init__.cpython-312.pyc -------------------------------------------------------------------------------- /2023/ed.line/educator-site/ed_teach/__pycache__/settings.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2023/ed.line/educator-site/ed_teach/__pycache__/settings.cpython-312.pyc -------------------------------------------------------------------------------- /2023/ed.line/learner-site/app/__pycache__/dashboard_data.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2023/ed.line/learner-site/app/__pycache__/dashboard_data.cpython-312.pyc -------------------------------------------------------------------------------- /2023/ed.line/learner-site/app/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class SrcConfig(AppConfig): 5 | default_auto_field = 'django.db.models.BigAutoField' 6 | name = 'app' 7 | -------------------------------------------------------------------------------- /2024/chronicle/src/app/(admin)/admin/(afterLogin)/analytics/error.tsx: -------------------------------------------------------------------------------- 1 | 'use client' 2 | 3 | export default function ErrorPage() { 4 | return ( 5 |
An error occured
6 | ) 7 | } -------------------------------------------------------------------------------- /2024/chronicle/src/app/(admin)/admin/(afterLogin)/dashboard/error.tsx: -------------------------------------------------------------------------------- 1 | 'use client' 2 | 3 | export default function ErrorPage() { 4 | return ( 5 |
An error occured
6 | ) 7 | } -------------------------------------------------------------------------------- /2024/chronicle/src/app/(admin)/admin/(afterLogin)/structure/error.tsx: -------------------------------------------------------------------------------- 1 | 'use client' 2 | 3 | export default function ErrorPage() { 4 | return ( 5 |
An error occured
6 | ) 7 | } -------------------------------------------------------------------------------- /2024/chronicle/src/app/(frontend)/u/favorites/page.tsx: -------------------------------------------------------------------------------- 1 | export default function ReaderFavorites() { 2 | return ( 3 |
4 | Favorites 5 |
6 | ) 7 | } -------------------------------------------------------------------------------- /2024/chronicle/src/app/(frontend)/u/settings/page.tsx: -------------------------------------------------------------------------------- 1 | export default function ReaderSettings() { 2 | return ( 3 |
4 | Settings 5 |
6 | ) 7 | } -------------------------------------------------------------------------------- /2023/ed.line/educator-site/app/utils/__pycache__/__init__.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2023/ed.line/educator-site/app/utils/__pycache__/__init__.cpython-312.pyc -------------------------------------------------------------------------------- /2024/chronicle/src/components/(frontend)/(blog)/Favorite/utils/constants.ts: -------------------------------------------------------------------------------- 1 | export const DEFAULT_FAVORITE_ENABLED_STATE: boolean = false 2 | export const FAVORITE_FILLED_SHADE: string = '#FBBD33' -------------------------------------------------------------------------------- /2024/chronicle/src/components/(frontend)/AllBlogs/utils/types.ts: -------------------------------------------------------------------------------- 1 | import { BlogAtomicDataDocument } from "@/common/types/documents/documents" 2 | 3 | export type AllBlogsType = BlogAtomicDataDocument[] -------------------------------------------------------------------------------- /2023/ed.line/educator-site/app/utils/__pycache__/generate_id.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2023/ed.line/educator-site/app/utils/__pycache__/generate_id.cpython-312.pyc -------------------------------------------------------------------------------- /2023/ed.line/learner-site/app/migrations/__pycache__/__init__.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2023/ed.line/learner-site/app/migrations/__pycache__/__init__.cpython-312.pyc -------------------------------------------------------------------------------- /2024/covilla-blogs/site_admin/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class SiteAdminConfig(AppConfig): 5 | default_auto_field = 'django.db.models.BigAutoField' 6 | name = 'site_admin' 7 | -------------------------------------------------------------------------------- /2024/covilla-blogs/site_admin/migrations/__pycache__/__init__.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2024/covilla-blogs/site_admin/migrations/__pycache__/__init__.cpython-312.pyc -------------------------------------------------------------------------------- /2024/webstats/src/utils/errors.ts: -------------------------------------------------------------------------------- 1 | 2 | // errors ====================================================== 3 | 4 | const ERROR_CODES = { 5 | SYNTAX_ERROR: { status: false, err: "syntax error" } 6 | } 7 | 8 | -------------------------------------------------------------------------------- /2023/ed.line/educator-site/app/migrations/__pycache__/__init__.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2023/ed.line/educator-site/app/migrations/__pycache__/__init__.cpython-312.pyc -------------------------------------------------------------------------------- /2024/chronicle/src/lib/utils.ts: -------------------------------------------------------------------------------- 1 | import { type ClassValue, clsx } from "clsx" 2 | import { twMerge } from "tailwind-merge" 3 | 4 | export function cn(...inputs: ClassValue[]) { 5 | return twMerge(clsx(inputs)) 6 | } 7 | -------------------------------------------------------------------------------- /2023/ed.line/educator-site/app/migrations/__pycache__/0001_initial.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2023/ed.line/educator-site/app/migrations/__pycache__/0001_initial.cpython-312.pyc -------------------------------------------------------------------------------- /2024/chronicle/src/app/(frontend)/[blogId]/error.tsx: -------------------------------------------------------------------------------- 1 | 'use client' 2 | 3 | export default function ErrorPage() { 4 | return ( 5 |
An error occured
6 | ) 7 | } -------------------------------------------------------------------------------- /2024/covilla-blogs/site_admin/migrations/__pycache__/0001_initial.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2024/covilla-blogs/site_admin/migrations/__pycache__/0001_initial.cpython-312.pyc -------------------------------------------------------------------------------- /2024/webstats/src/components/siteList/SiteList.css: -------------------------------------------------------------------------------- 1 | .active-aside, .active-aside:hover { 2 | background: #f6737365; 3 | } 4 | .active-aside span:nth-child(2) { 5 | opacity: 1; 6 | transform: translateX(0); 7 | } 8 | -------------------------------------------------------------------------------- /2024/chronicle/src/components/(frontend)/(reader)/ReaderSettings/utils/constants.ts: -------------------------------------------------------------------------------- 1 | import { ReaderSettingActiveTabOptions } from "./types" 2 | 3 | export const DEFAULT_SETTING_OPEN_TAB: ReaderSettingActiveTabOptions = 'settings' -------------------------------------------------------------------------------- /2023/geoverify/requirements.txt: -------------------------------------------------------------------------------- 1 | gunicorn 2 | aiohttp 3 | aiosignal 4 | async-timeout 5 | attrs 6 | charset-normalizer 7 | frozenlist 8 | idna 9 | multidict 10 | flask 11 | yarl 12 | python-dotenv 13 | pymongo 14 | -------------------------------------------------------------------------------- /2024/gittify/utils/check_authentic.py: -------------------------------------------------------------------------------- 1 | def check_data_authenticity(data:str): 2 | if ('message' in data and data['message']=='Not Found') or (data=='Failed to fetch data | Status: 404'): 3 | return False 4 | return True -------------------------------------------------------------------------------- /2024/webstats/next-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | 4 | // NOTE: This file should not be edited 5 | // see https://nextjs.org/docs/basic-features/typescript for more information. 6 | -------------------------------------------------------------------------------- /2024/chronicle/next-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | 4 | // NOTE: This file should not be edited 5 | // see https://nextjs.org/docs/basic-features/typescript for more information. 6 | -------------------------------------------------------------------------------- /2024/chronicle/src/app/(frontend)/[blogId]/page.tsx: -------------------------------------------------------------------------------- 1 | import BlogPage from "@/components/pages/BlogPage" 2 | 3 | export default async function BlogPost({ params }: { params: { blogId: string } }) { 4 | return 5 | } -------------------------------------------------------------------------------- /2024/chronicle/src/components/(frontend)/RecentlyRead/utils/types.ts: -------------------------------------------------------------------------------- 1 | import { BlogCardDataDocument, BlogMetricsType, ImageDocument } from "@/common/types/documents/documents" 2 | 3 | export type RecentlyReadDataType = BlogCardDataDocument[] -------------------------------------------------------------------------------- /2024/chronicle/src/app/(frontend)/u/comments/page.tsx: -------------------------------------------------------------------------------- 1 | 2 | export default async function ReaderComments() { 3 | return ( 4 |
5 | Blogs where you commented will appear here 6 |
7 | ) 8 | } -------------------------------------------------------------------------------- /2024/chronicle/src/common/links/generateLinks.ts: -------------------------------------------------------------------------------- 1 | import { getSlug } from "../utils/getSlug" 2 | 3 | export const generateBlogLink = (str:string) => `/${getSlug(str)}` 4 | export const generateCategoryLink = (str:string) => `/category/${getSlug(str)}` 5 | -------------------------------------------------------------------------------- /2023/ed.line/educator-site/app/migrations/__pycache__/0002_alter_educator_pictures_image.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2023/ed.line/educator-site/app/migrations/__pycache__/0002_alter_educator_pictures_image.cpython-312.pyc -------------------------------------------------------------------------------- /2024/chronicle/src/common/types/reactTypes.ts: -------------------------------------------------------------------------------- 1 | import { SetStateAction } from "react" 2 | 3 | export type ChildrenType = Readonly 4 | export type SetStateType = React.Dispatch> 5 | 6 | -------------------------------------------------------------------------------- /2024/chronicle/src/components/(frontend)/(blog)/LikesDislikes/utils/types.ts: -------------------------------------------------------------------------------- 1 | export type LikesDislikesType = { likes: number, selected: LikeDislikeStateType, onLike: () => void, onDislike: () => void } 2 | 3 | export type LikeDislikeStateType = 'like' | 'dislike' | 'none' -------------------------------------------------------------------------------- /2024/chronicle/src/common/utils/typeCheck.ts: -------------------------------------------------------------------------------- 1 | export const isObject = (x:any) => { return(Object.prototype.toString.call(x)==='[object Object]'?true:false)} 2 | export const isArray = (x:any) => { return(Object.prototype.toString.call(x)==='[object Array]' ?true:false)} 3 | -------------------------------------------------------------------------------- /2023/candies/README.md: -------------------------------------------------------------------------------- 1 | # Candies 2 | a simple responsive grid layout setup with smaller log tasks implemented 3 | --------------------------------------------------------------- 4 | ![proj_img](https://github.com/bcd-kushal/Candies/assets/96081625/7ceceb9a-cfce-47ca-b4e1-a6982f8c3f5f) 5 | -------------------------------------------------------------------------------- /2023/api-fetch/src/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM node:20-alpine 2 | 3 | RUN mkdir -p /app/src 4 | 5 | WORKDIR /app/src 6 | 7 | COPY package*.json ./ 8 | 9 | RUN npm install 10 | 11 | COPY * ./ 12 | 13 | ENV PORT=8001 14 | 15 | EXPOSE 8001 16 | 17 | CMD [ "npm", "start" ] 18 | -------------------------------------------------------------------------------- /2024/chronicle/src/app/(admin)/admin/layout.tsx: -------------------------------------------------------------------------------- 1 | import { ChildrenType } from "@/common/types/reactTypes" 2 | 3 | export default async function AdminLayout({ children }: { children: ChildrenType }) { 4 | return ( 5 | <> 6 | {children} 7 | 8 | ) 9 | } -------------------------------------------------------------------------------- /2024/chronicle/src/app/(admin)/admin/(afterLogin)/blogs/layout.tsx: -------------------------------------------------------------------------------- 1 | import { ChildrenType } from "@/common/types/reactTypes" 2 | 3 | export default async function AdminLayout({ children }: { children: ChildrenType }) { 4 | return ( 5 | <> 6 | {children} 7 | 8 | ) 9 | } -------------------------------------------------------------------------------- /2024/chronicle/src/components/(frontend)/ThemeSwitch/functions/toggleTheme.ts: -------------------------------------------------------------------------------- 1 | import { ThemeType } from "@/common/types/types" 2 | import { setThemeCookie } from "@/server/cookies/theme" 3 | 4 | export const toggleTheme = (theme: ThemeType) => { 5 | setThemeCookie(theme === 'dark' ? 'light' : 'dark') 6 | } -------------------------------------------------------------------------------- /2024/chronicle/src/components/(frontend)/Title/utils/constants.ts: -------------------------------------------------------------------------------- 1 | export const TITLE_STYLES = { 2 | blog: "block text-4xl mb-4 leading-[40px] font-extrabold", 3 | category: "text-2xl sm:text-4xl font-semibold my-5 pt-4", 4 | settings: "text-2xl sm:text-3xl font-semibold my-5 pt-4 sm:pt-0" 5 | } 6 | -------------------------------------------------------------------------------- /2024/chronicle/src/components/(frontend)/Title/utils/types.ts: -------------------------------------------------------------------------------- 1 | export type TitleType = | { type: "text", label: string, variant: "blog" | "category" | "settings" } 2 | | { type: "link", href: string, target?: "self" | "new-tab", label: string, variant: "blog" | "category" } -------------------------------------------------------------------------------- /2024/webstats/src/components/header/Header.css: -------------------------------------------------------------------------------- 1 | .wiggle-grp:hover .wiggle-target { 2 | animation: wiggleUp .7s linear; 3 | } 4 | 5 | @keyframes wiggleUp { 6 | 0%,100% { 7 | transform: translateY(0); 8 | } 9 | 45% { 10 | transform: translateY(-3px); 11 | } 12 | } -------------------------------------------------------------------------------- /2024/chronicle/src/app/(admin)/admin/(afterLogin)/analytics/layout.tsx: -------------------------------------------------------------------------------- 1 | import { ChildrenType } from "@/common/types/reactTypes" 2 | 3 | export default async function AdminLayout({ children }: { children: ChildrenType }) { 4 | return ( 5 | <> 6 | {children} 7 | 8 | ) 9 | } -------------------------------------------------------------------------------- /2024/chronicle/src/app/(admin)/admin/(afterLogin)/dashboard/layout.tsx: -------------------------------------------------------------------------------- 1 | import { ChildrenType } from "@/common/types/reactTypes" 2 | 3 | export default async function AdminLayout({ children }: { children: ChildrenType }) { 4 | return ( 5 | <> 6 | {children} 7 | 8 | ) 9 | } -------------------------------------------------------------------------------- /2024/chronicle/src/app/(admin)/admin/(afterLogin)/structure/layout.tsx: -------------------------------------------------------------------------------- 1 | import { ChildrenType } from "@/common/types/reactTypes" 2 | 3 | export default async function AdminLayout({ children }: { children: ChildrenType }) { 4 | return ( 5 | <> 6 | {children} 7 | 8 | ) 9 | } -------------------------------------------------------------------------------- /2024/chronicle/src/components/(frontend)/(atomic)/Avatar/utils/types.ts: -------------------------------------------------------------------------------- 1 | import { ImageDocument } from "@/common/types/documents/documents" 2 | import { AvatarShadeType } from "@/common/types/types" 3 | 4 | export type AvatarType = { readerName: string, dimensions: string, shade: AvatarShadeType, img ?: ImageDocument } -------------------------------------------------------------------------------- /2024/chronicle/src/components/(frontend)/FeaturedBlogs/utils/constants.ts: -------------------------------------------------------------------------------- 1 | export const FEATURED_BLOGS_ROW_SPANS = [ 2 | 'sm:row-span-3 md:row-span-7', 3 | 'sm:row-span-2 md:row-span-3', 4 | 'sm:row-span-3 md:row-span-4', 5 | 'sm:row-span-4 md:row-span-4', 6 | 'sm:row-span-2 md:row-span-3' 7 | ] -------------------------------------------------------------------------------- /2024/chronicle/src/app/api/footer/links/route.ts: -------------------------------------------------------------------------------- 1 | import { NextRequest, NextResponse } from "next/server" 2 | 3 | export const GET = async (req: NextRequest): Promise => { 4 | const queryParams = new URL(req.url).searchParams 5 | 6 | return NextResponse.json(queryParams, { status: 200 }) 7 | 8 | } -------------------------------------------------------------------------------- /2024/chronicle/src/components/(frontend)/(atomic)/CommentBubble/utils/types.ts: -------------------------------------------------------------------------------- 1 | export type CommentBubbleType = { 2 | } & ({ 3 | textareaDisabled: true, commentString: string 4 | } | { 5 | textareaDisabled: false, textareaValue: string, placeholder: string 6 | handleInputChange: (str: string) => void 7 | }) -------------------------------------------------------------------------------- /2024/chronicle/src/components/(frontend)/(blog)/BlogMiniCard/utils/types.ts: -------------------------------------------------------------------------------- 1 | import { BlogCardDataDocument } from "@/common/types/documents/documents" 2 | 3 | export type BlogMiniCardDataType = { title: BlogCardDataDocument["title"], thumbnail: BlogCardDataDocument["thumbnail"], createdAt: BlogCardDataDocument["createdAt"] } -------------------------------------------------------------------------------- /2024/chronicle/src/components/(frontend)/(blog)/Comment/utils/types.ts: -------------------------------------------------------------------------------- 1 | import { CommentDocument } from "@/common/types/documents/documents" 2 | 3 | export type CommentType = 4 | CommentDocument 5 | & ({ newComment: true, placeholder?: string, onEdit: (str: string) => void } 6 | | { newComment: false }) -------------------------------------------------------------------------------- /2023/ed.line/educator-site/app/migrations/__pycache__/0003_courseoverview_videos_alter_educator_pictures_image_and_more.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kush-ks/early-days-projects/HEAD/2023/ed.line/educator-site/app/migrations/__pycache__/0003_courseoverview_videos_alter_educator_pictures_image_and_more.cpython-312.pyc -------------------------------------------------------------------------------- /2024/chronicle/src/app/api/footer/socials/route.ts: -------------------------------------------------------------------------------- 1 | import { NextRequest, NextResponse } from "next/server" 2 | 3 | export const GET = async (req: NextRequest): Promise => { 4 | const queryParams = new URL(req.url).searchParams 5 | 6 | return NextResponse.json(queryParams, { status: 200 }) 7 | 8 | } -------------------------------------------------------------------------------- /2024/chronicle/src/app/api/footer/subtitle/route.ts: -------------------------------------------------------------------------------- 1 | import { NextRequest, NextResponse } from "next/server" 2 | 3 | export const GET = async (req: NextRequest): Promise => { 4 | const queryParams = new URL(req.url).searchParams 5 | 6 | return NextResponse.json(queryParams, { status: 200 }) 7 | 8 | } -------------------------------------------------------------------------------- /2024/chronicle/src/components/(frontend)/FeaturedBlogs/utils/types.ts: -------------------------------------------------------------------------------- 1 | import { BlogCardDataDocument, BlogMetricsType, ImageDocument } from "@/common/types/documents/documents" 2 | 3 | export type FeaturedBlogsType = BlogCardDataDocument 4 | export type FeaturedBlogsComponentType = { featuredBlogs: FeaturedBlogsType[] } -------------------------------------------------------------------------------- /2023/ed.line/educator-site/app/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | from .models import * 3 | 4 | admin.site.register(educator_pictures) 5 | admin.site.register(CourseOverview) 6 | admin.site.register(HeaderTitles) 7 | admin.site.register(VideoTitles) 8 | admin.site.register(Videos) 9 | 10 | # Register your models here. 11 | -------------------------------------------------------------------------------- /2023/ed.line/educator-site/app/templates/src/others/others.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | {{ tab_title }} 7 | 8 | 9 | {{company_data|safe}} 10 | 11 | -------------------------------------------------------------------------------- /2023/ed.line/learner-site/app/templates/src/others/others.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | {{ tab_title }} 7 | 8 | 9 | {{company_data|safe}} 10 | 11 | -------------------------------------------------------------------------------- /2023/uptime/utils/check_os.py: -------------------------------------------------------------------------------- 1 | import sys 2 | 3 | def check_os_type(): 4 | if sys.platform.startswith('win'): 5 | return "windows" 6 | 7 | if sys.platform.startswith('linux'): 8 | return "linux" 9 | 10 | if sys.platform.startswith('darwin'): 11 | return "macOS" 12 | 13 | return "unknown OS" -------------------------------------------------------------------------------- /2024/chronicle/next.config.mjs: -------------------------------------------------------------------------------- 1 | /** @type {import('next').NextConfig} */ 2 | const nextConfig = { 3 | images: { 4 | remotePatterns: [ 5 | { 6 | protocol: "https", 7 | hostname: "github.com", 8 | port: "", 9 | pathname: "/**", 10 | }, 11 | ], 12 | }, 13 | }; 14 | 15 | export default nextConfig; 16 | -------------------------------------------------------------------------------- /2024/chronicle/src/server/supabase/client/client.ts: -------------------------------------------------------------------------------- 1 | import dotenv from 'dotenv' 2 | import { createClient } from "@supabase/supabase-js" 3 | dotenv.config() 4 | 5 | const SUPA_URL: string = process.env.SUPABASE_URL || "" 6 | const SUPA_SECRET: string = process.env.SUPABASE_SECRET_KEY || "" 7 | 8 | export const supa = createClient(SUPA_URL, SUPA_SECRET) 9 | -------------------------------------------------------------------------------- /2024/gittify/utils/check_os.py: -------------------------------------------------------------------------------- 1 | import sys 2 | 3 | def check_os_type(): 4 | if sys.platform.startswith('win'): 5 | return "windows" 6 | 7 | if sys.platform.startswith('linux'): 8 | return "linux" 9 | 10 | if sys.platform.startswith('darwin'): 11 | return "macOS" 12 | 13 | return "unknown OS" -------------------------------------------------------------------------------- /2024/webstats/src/utils/checkType.ts: -------------------------------------------------------------------------------- 1 | // type check ====================================================== 2 | 3 | export const checkIsObject = (x:any) => { return(Object.prototype.toString.call(x)==='[object Object]'?true:false)} 4 | export const checkIsArray = (x:any) => { return(Object.prototype.toString.call(x)==='[object Array]' ?true:false)} 5 | 6 | -------------------------------------------------------------------------------- /2024/chronicle/src/components/(frontend)/(atomic)/NewComment/utils/types.ts: -------------------------------------------------------------------------------- 1 | import { ChildrenType } from "@/common/types/reactTypes" 2 | import { ClassNameType } from "@/common/types/types" 3 | 4 | export type CommentType = { 5 | blogTitle: string 6 | onCancel: () => void, handleComment: () => void 7 | children: ChildrenType, className?: ClassNameType 8 | } -------------------------------------------------------------------------------- /2024/gittify/monitor/utils/check_os.py: -------------------------------------------------------------------------------- 1 | import sys 2 | 3 | def check_os_type(): 4 | if sys.platform.startswith('win'): 5 | return "windows" 6 | 7 | if sys.platform.startswith('linux'): 8 | return "linux" 9 | 10 | if sys.platform.startswith('darwin'): 11 | return "macOS" 12 | 13 | return "unknown OS" -------------------------------------------------------------------------------- /2023/window-slider/jquery/test.js: -------------------------------------------------------------------------------- 1 | 2 | $(document).ready(function () { 3 | $(".submitForm1").click(function () { 4 | window.scrollTo({ 5 | top: 0, 6 | behavior: "smooth", 7 | }); 8 | setTimeout(function () { 9 | window.location.href = "index_pics.html"; 10 | }, 1000); 11 | }); 12 | }); -------------------------------------------------------------------------------- /2024/webstats/src/components/templates/Download.tsx: -------------------------------------------------------------------------------- 1 | 'use client' 2 | import { DownloadSvg } from "@/svgs/svgs" 3 | import { useRouter } from "next/navigation" 4 | 5 | export default function DownloadButton() { 6 | return ( 7 | 8 | ) 9 | } -------------------------------------------------------------------------------- /2024/chronicle/src/common/utils/inThousands.ts: -------------------------------------------------------------------------------- 1 | export const inThousands = (num: number) => { 2 | // million ------------------ 3 | if (num >= 1_000_000) 4 | return `${(num / 1_000_000).toFixed(1)}M` 5 | 6 | // thousands ------------------ 7 | if (num >= 1_000) 8 | return `${(num / 1000).toFixed(1)}K` 9 | 10 | return `${num}` 11 | } -------------------------------------------------------------------------------- /2024/covilla-blogs/app/api_delete.py: -------------------------------------------------------------------------------- 1 | from datetime import datetime, timedelta 2 | 3 | from pymongo.mongo_client import MongoClient 4 | from pymongo.server_api import ServerApi 5 | 6 | ATLAS_URI = "ATLAS_SECRET" 7 | 8 | 9 | #================================================================== 10 | #================================================================== 11 | 12 | -------------------------------------------------------------------------------- /2024/covilla-blogs/app/api_update.py: -------------------------------------------------------------------------------- 1 | from datetime import datetime, timedelta 2 | 3 | from pymongo.mongo_client import MongoClient 4 | from pymongo.server_api import ServerApi 5 | 6 | ATLAS_URI = "ATLAS_SECRET" 7 | 8 | 9 | #================================================================== 10 | #================================================================== 11 | 12 | -------------------------------------------------------------------------------- /2024/webstats/src/components/mainData/statsContainer/StatsContainer.css: -------------------------------------------------------------------------------- 1 | .article-width { 2 | max-width: 972px; 3 | width: calc(100dvw - 308px); 4 | height: calc(100dvh - 256.5px); 5 | } 6 | 7 | @media (max-width: 768px) { 8 | .article-width { 9 | width: calc(100dvw - 32px); 10 | max-width: 100%; 11 | height: calc(100dvh - 346.5px); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /2024/chronicle/src/components/(frontend)/(reader)/ReaderSettings/utils/types.ts: -------------------------------------------------------------------------------- 1 | import { SetStateType } from "@/common/types/reactTypes" 2 | 3 | export type ReaderSettingActiveTabOptions = 'favorites' | 'comments' | 'likes' | 'preferences' | 'settings' 4 | export type ReaderSettingsType = { initalActiveTab: ReaderSettingActiveTabOptions, setInitalActiveTab: SetStateType } 5 | -------------------------------------------------------------------------------- /2024/gittify/monitor/utils/check_service.py: -------------------------------------------------------------------------------- 1 | import psutil 2 | import os 3 | 4 | def is_service_running(service_name:str): 5 | for process in psutil.process_iter(['pid', 'name']): 6 | print(f"{process.info['pid']}: {process.info['name'].lower()}") 7 | if process.info['name'].lower() == service_name.lower(): 8 | return True 9 | return False 10 | 11 | 12 | -------------------------------------------------------------------------------- /2024/webstats/src/components/templates/Refresh.tsx: -------------------------------------------------------------------------------- 1 | 'use client' 2 | import { RefreshSvg } from "@/svgs/svgs" 3 | import { useRouter } from "next/navigation" 4 | 5 | export default function RefreshButton() { 6 | const router = useRouter() 7 | return ( router.refresh()} className="cursor-pointer hover:bg-[#ccc2] transition-all duration-300 p-3 rounded-full"> ) 8 | } -------------------------------------------------------------------------------- /2024/covilla-blogs/app/templates/src/error/error.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {% load sass_tags %} 5 | 6 | 7 | Oops, page not found. 8 | 9 | 10 |
11 | Oops, this page does not exist. 12 |
13 | 14 | -------------------------------------------------------------------------------- /2024/chronicle/components.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://ui.shadcn.com/schema.json", 3 | "style": "new-york", 4 | "rsc": true, 5 | "tsx": true, 6 | "tailwind": { 7 | "config": "tailwind.config.ts", 8 | "css": "src/app/globals.css", 9 | "baseColor": "neutral", 10 | "cssVariables": true, 11 | "prefix": "" 12 | }, 13 | "aliases": { 14 | "components": "@/components", 15 | "utils": "@/lib/utils" 16 | } 17 | } -------------------------------------------------------------------------------- /2024/webstats/src/app/loading.tsx: -------------------------------------------------------------------------------- 1 | 'use server' 2 | 3 | import { LoaderSvg } from "@/svgs/svgs" 4 | 5 | export default async function LoadingComponent() { 6 | return ( 7 | 8 |
9 |
Loading...
10 |
11 | ) 12 | } -------------------------------------------------------------------------------- /2024/gittify/client/initialize.py: -------------------------------------------------------------------------------- 1 | import os 2 | import dotenv 3 | 4 | import client.class_module as client 5 | 6 | dotenv.load_dotenv() 7 | 8 | API = os.getenv('GITHUB_API') 9 | USERNAME = os.getenv('GITHUB_USERNAME') 10 | ACCESS_TOKEN = os.getenv('GITHUB_ACCESS_TOKEN') 11 | 12 | github_client = client.GithHubClient(username=USERNAME, access_token=ACCESS_TOKEN, base_url=API) 13 | 14 | def gitty_initialize(): 15 | return github_client -------------------------------------------------------------------------------- /2024/chronicle/src/app/(frontend)/u/likes/layout.tsx: -------------------------------------------------------------------------------- 1 | import { ChildrenType } from "@/common/types/reactTypes" 2 | import Title from "@/components/(frontend)/Title/Title" 3 | 4 | export default async function ReaderCommentsLayout({ children }: { children: ChildrenType }) { 5 | return ( 6 | <> 7 | 8 | {children} 9 | </> 10 | ) 11 | } -------------------------------------------------------------------------------- /2024/gittify/monitor/continuous_script.py: -------------------------------------------------------------------------------- 1 | import time 2 | import logging 3 | 4 | def main(): 5 | logging.basicConfig(filename='output2.log',level=logging.INFO,format='%(asctime)s - %(levelname)s - %(message)s') 6 | 7 | while True: 8 | with open('output.txt', 'a') as file: 9 | file.write("Gittify wishes hola!\n") 10 | logging.info("Gittify wishes hola!\n") 11 | time.sleep(5) 12 | 13 | main() 14 | -------------------------------------------------------------------------------- /2024/chronicle/src/app/(frontend)/u/comments/layout.tsx: -------------------------------------------------------------------------------- 1 | import { ChildrenType } from "@/common/types/reactTypes" 2 | import Title from "@/components/(frontend)/Title/Title" 3 | 4 | export default async function ReaderCommentsLayout({ children }: { children: ChildrenType }) { 5 | return ( 6 | <> 7 | <Title config={{ type: "text", label: "Comments", variant: "settings" }} /> 8 | {children} 9 | </> 10 | ) 11 | } -------------------------------------------------------------------------------- /2024/chronicle/src/app/(frontend)/u/favorites/layout.tsx: -------------------------------------------------------------------------------- 1 | import { ChildrenType } from "@/common/types/reactTypes" 2 | import Title from "@/components/(frontend)/Title/Title" 3 | 4 | export default async function ReaderFavoritesLayout({ children }: { children: ChildrenType }) { 5 | return ( 6 | <> 7 | <Title config={{ type: "text", label: "Favorites", variant: "settings" }} /> 8 | {children} 9 | </> 10 | ) 11 | } -------------------------------------------------------------------------------- /2024/chronicle/src/app/(frontend)/u/settings/layout.tsx: -------------------------------------------------------------------------------- 1 | import { ChildrenType } from "@/common/types/reactTypes" 2 | import Title from "@/components/(frontend)/Title/Title" 3 | 4 | export default async function ReaderCommentsLayout({ children }: { children: ChildrenType }) { 5 | return ( 6 | <> 7 | <Title config={{ type: "text", label: "Settings", variant: "settings" }} /> 8 | {children} 9 | </> 10 | ) 11 | } -------------------------------------------------------------------------------- /2024/chronicle/src/app/api/blogs/route.ts: -------------------------------------------------------------------------------- 1 | import { SSGBlogStaticParamType } from "@/common/types/types" 2 | import { NextRequest, NextResponse } from "next/server" 3 | 4 | export const GET = async (): Promise<NextResponse> => { 5 | const allBlogs: SSGBlogStaticParamType = [ 6 | { blogId: "shubham-naam-hai-mera" }, 7 | { blogId: "proud-employee-makeindias" } 8 | ] 9 | 10 | return NextResponse.json(allBlogs, { status: 200 }) 11 | 12 | } -------------------------------------------------------------------------------- /2024/chronicle/notes.md: -------------------------------------------------------------------------------- 1 | >>> Context Wrappers: 2 | - useThemeContext(): default - dark 3 | - useStatusContext(): for toast notification 4 | - useNavigationContext(): checks if 'go back' will go to homepage or categories page 5 | - useReaderContext(): reader login info manager 6 | 7 | 8 | 9 | >>> UI pending: 10 | - blog page 11 | - comments section 12 | - reader 13 | - no icon, random color letter icon -------------------------------------------------------------------------------- /2024/gittify/utils/logs.py: -------------------------------------------------------------------------------- 1 | from colors import initialize as beautifish_init 2 | beautifish = beautifish_init.beautifish_initalize() 3 | 4 | def help_line(): 5 | s = beautifish.gray_text(f" run --commands to show all commands") 6 | return s 7 | 8 | 9 | 10 | # ========[ a complete log of helps ]============= 11 | def help_log(): 12 | s = f"help log" 13 | return s 14 | 15 | def command_log(): 16 | s = f"command log" 17 | return s -------------------------------------------------------------------------------- /2024/webstats/src/data/sitesOnPreview.ts: -------------------------------------------------------------------------------- 1 | import { SitesListType } from "@/types/types" 2 | 3 | export const SITES_LIST:SitesListType = [ 4 | { name: "Portfolio", subtitle:"portfolio.kushalkumarsaha.com", targetClassIndex:"traffic-portfolio" }, 5 | { name: "Services", subtitle:"services.kushalkumarsaha.com", targetClassIndex:"traffic-services" }, 6 | { name: "Stats", subtitle:"stats.kushalkumarsaha.com", targetClassIndex:"traffic-stats" }, 7 | ] -------------------------------------------------------------------------------- /2024/webstats/src/utils/getAspect.ts: -------------------------------------------------------------------------------- 1 | import { AspectType } from "@/types/types" 2 | 3 | // aspect ratio ====================================================== 4 | 5 | export const getAspect = ({w,h}:AspectType) => { 6 | const gcd = (a:number, b:number):number => { return b === 0 ? a : gcd(b, a % b) } 7 | const divisor = gcd(w, h) 8 | const numerator = w / divisor 9 | const denominator = h / divisor 10 | return `${numerator}:${denominator}` 11 | } -------------------------------------------------------------------------------- /2024/chronicle/src/common/types/apiTypes.ts: -------------------------------------------------------------------------------- 1 | import { NextResponse } from "next/server" 2 | 3 | export type ApiResponseType = { 4 | status: "error" | "success" | "warning" | "unknown" 5 | } & ({ 6 | data: Record<string, string>, 7 | status: "error" | "success" | "warning" | "unknown", 8 | count?: number 9 | } | { 10 | data: null 11 | }) 12 | 13 | export type ApiReturnType = NextResponse<ApiResponseType> -------------------------------------------------------------------------------- /2024/chronicle/src/app/api/blogs/[id]/route.ts: -------------------------------------------------------------------------------- 1 | import { NextRequest, NextResponse } from "next/server" 2 | import { getBlogArticle } from "../controller" 3 | 4 | export const GET = async (req: NextRequest): Promise<NextResponse> => { 5 | const url = req.url 6 | const blogId = url.split('/blogs/')[1] 7 | const responseData: string | null = await getBlogArticle(blogId) 8 | 9 | return NextResponse.json({ success: true, data: responseData }, { status: 200 }) 10 | 11 | } -------------------------------------------------------------------------------- /2024/covilla-blogs/blogs/asgi.py: -------------------------------------------------------------------------------- 1 | """ 2 | ASGI config for blogs project. 3 | 4 | It exposes the ASGI callable as a module-level variable named ``application``. 5 | 6 | For more information on this file, see 7 | https://docs.djangoproject.com/en/4.2/howto/deployment/asgi/ 8 | """ 9 | 10 | import os 11 | 12 | from django.core.asgi import get_asgi_application 13 | 14 | os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'blogs.settings') 15 | 16 | application = get_asgi_application() 17 | -------------------------------------------------------------------------------- /2024/covilla-blogs/blogs/wsgi.py: -------------------------------------------------------------------------------- 1 | """ 2 | WSGI config for blogs project. 3 | 4 | It exposes the WSGI callable as a module-level variable named ``application``. 5 | 6 | For more information on this file, see 7 | https://docs.djangoproject.com/en/4.2/howto/deployment/wsgi/ 8 | """ 9 | 10 | import os 11 | 12 | from django.core.wsgi import get_wsgi_application 13 | 14 | os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'blogs.settings') 15 | 16 | application = get_wsgi_application() 17 | -------------------------------------------------------------------------------- /2023/ed.line/educator-site/ed_teach/asgi.py: -------------------------------------------------------------------------------- 1 | """ 2 | ASGI config for ed_teach project. 3 | 4 | It exposes the ASGI callable as a module-level variable named ``application``. 5 | 6 | For more information on this file, see 7 | https://docs.djangoproject.com/en/4.2/howto/deployment/asgi/ 8 | """ 9 | 10 | import os 11 | 12 | from django.core.asgi import get_asgi_application 13 | 14 | os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'ed_teach.settings') 15 | 16 | application = get_asgi_application() 17 | -------------------------------------------------------------------------------- /2023/ed.line/educator-site/ed_teach/wsgi.py: -------------------------------------------------------------------------------- 1 | """ 2 | WSGI config for ed_teach project. 3 | 4 | It exposes the WSGI callable as a module-level variable named ``application``. 5 | 6 | For more information on this file, see 7 | https://docs.djangoproject.com/en/4.2/howto/deployment/wsgi/ 8 | """ 9 | 10 | import os 11 | 12 | from django.core.wsgi import get_wsgi_application 13 | 14 | os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'ed_teach.settings') 15 | 16 | application = get_wsgi_application() 17 | -------------------------------------------------------------------------------- /2023/ed.line/learner-site/ed_line/asgi.py: -------------------------------------------------------------------------------- 1 | """ 2 | ASGI config for ed_line project. 3 | 4 | It exposes the ASGI callable as a module-level variable named ``application``. 5 | 6 | For more information on this file, see 7 | https://docs.djangoproject.com/en/4.2/howto/deployment/asgi/ 8 | """ 9 | 10 | import os 11 | 12 | from django.core.asgi import get_asgi_application 13 | 14 | os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'ed_line.settings') 15 | 16 | application = get_asgi_application() 17 | -------------------------------------------------------------------------------- /2023/ed.line/learner-site/ed_line/wsgi.py: -------------------------------------------------------------------------------- 1 | """ 2 | WSGI config for ed_line project. 3 | 4 | It exposes the WSGI callable as a module-level variable named ``application``. 5 | 6 | For more information on this file, see 7 | https://docs.djangoproject.com/en/4.2/howto/deployment/wsgi/ 8 | """ 9 | 10 | import os 11 | 12 | from django.core.wsgi import get_wsgi_application 13 | 14 | os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'ed_line.settings') 15 | 16 | application = get_wsgi_application() 17 | -------------------------------------------------------------------------------- /2023/api-fetch/src/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "postuncle", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.html", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1", 8 | "start": "snowpack dev", 9 | "build": "snowpack build" 10 | }, 11 | "keywords": [], 12 | "author": "", 13 | "license": "ISC", 14 | "dependencies": { 15 | "axios": "^1.6.0", 16 | "pretty-bytes": "^6.1.1" 17 | }, 18 | "devDependencies": { 19 | "snowpack": "^3.8.8" 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /2024/chronicle/src/components/(frontend)/(reader)/ReaderSettings/ReaderSettings.tsx: -------------------------------------------------------------------------------- 1 | import { useState } from "react" 2 | import { ReaderSettingActiveTabOptions, ReaderSettingsType } from "./utils/types" 3 | import { DEFAULT_SETTING_OPEN_TAB } from "./utils/constants" 4 | 5 | export default function ReaderSettings({ initalActiveTab, setInitalActiveTab }: ReaderSettingsType) { 6 | const [activeTab, setActiveTab] = useState<ReaderSettingActiveTabOptions>(initalActiveTab || DEFAULT_SETTING_OPEN_TAB) 7 | return ( 8 | <></> 9 | ) 10 | } -------------------------------------------------------------------------------- /2024/webstats/src/utils/activateTab.tsx: -------------------------------------------------------------------------------- 1 | 'use client' 2 | import { useEffect } from "react" 3 | 4 | export default function ActivateTab({ activeTab }: { activeTab:string }) { 5 | useEffect(() => { 6 | document.querySelectorAll(".site-tab").forEach( tab => { 7 | const result = tab.querySelector(".site-name")?.textContent?.toLowerCase()===activeTab 8 | result ? tab.classList.add("active-aside") : tab.classList.contains("active-aside") ? tab.classList.remove("active-aside") : null 9 | }) 10 | }, []) 11 | return (null) 12 | } -------------------------------------------------------------------------------- /2024/chronicle/src/components/(frontend)/Tag/Tag.tsx: -------------------------------------------------------------------------------- 1 | import { getSlug } from "@/common/utils/getSlug"; 2 | import Link from "next/link"; 3 | 4 | export default function Tag({label,type}:{label:string,type:"link"|"text"}) { 5 | return type==="text" ? <span className="rounded-full p-1 px-3 bg-zinc-300 dark:bg-zinc-800 truncate">{label}</span> : <Link href={`/category/${getSlug(label)}`} className="rounded-full p-1 px-3 bg-zinc-300 dark:bg-zinc-800 truncate transition-all duration-300 hover:bg-zinc-800 hover:text-white/90 dark:hover:bg-zinc-300 dark:hover:text-black/90">{label}</Link> 6 | } -------------------------------------------------------------------------------- /2024/webstats/src/utils/getTimeDate.ts: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | // date and time ====================================================== 5 | function getTimeDate() { 6 | const fixSpacing = (n:number) => { return n.toString().length===1? '0'+String(n) : String(n) } 7 | const time = new Date() 8 | const MONTHS = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] 9 | return(`[${fixSpacing(time.getDate())}-${MONTHS[time.getMonth()]},${fixSpacing(time.getHours())}:${fixSpacing(time.getMinutes())}:${fixSpacing(time.getSeconds())}]`) 10 | } 11 | 12 | -------------------------------------------------------------------------------- /2024/chronicle/src/server/supabase/db/ids.ts: -------------------------------------------------------------------------------- 1 | import { TableNamesType } from "./tables" 2 | 3 | export const TABLE_ID_PRE: Record<keyof TableNamesType, string> = { 4 | BLOG_ATOMIC_TABLE: 'bla', 5 | BLOG_CARD_TABLE: 'blc', 6 | BLOG_COMMENTS_TABLE: 'blk', 7 | BLOG_FULL_TABLE: 'blf', 8 | BLOG_METRICS_TABLE: 'blm', 9 | COMMENTS_TABLE: 'cmt', 10 | IMAGES_TABLE: 'img', 11 | READER_ATOMIC_TABLE: 'rda', 12 | READER_FULL_TABLE: 'rdf', 13 | READER_PROFILE_TABLE: 'rdp', 14 | TAGS_TABLE: 'tag', 15 | } -------------------------------------------------------------------------------- /2023/ed.line/educator-site/app/migrations/0002_alter_educator_pictures_image.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 4.2.7 on 2023-12-18 05:59 2 | 3 | import app.models 4 | from django.db import migrations, models 5 | 6 | 7 | class Migration(migrations.Migration): 8 | 9 | dependencies = [ 10 | ('app', '0001_initial'), 11 | ] 12 | 13 | operations = [ 14 | migrations.AlterField( 15 | model_name='educator_pictures', 16 | name='image', 17 | field=models.ImageField(upload_to='media/static/', validators=[app.models.validate_image_extension]), 18 | ), 19 | ] 20 | -------------------------------------------------------------------------------- /2024/chronicle/src/server/cookies/theme.ts: -------------------------------------------------------------------------------- 1 | 'use server' 2 | import { COOKIE_THEME_KEY } from "@/common/constants/cookieKeys" 3 | import { ThemeType } from "@/common/types/types" 4 | import { cookies } from "next/headers" 5 | 6 | const DEFAULT_COOKIE_KEY = COOKIE_THEME_KEY 7 | const DEFAULT_COOKIE_VALUE: ThemeType = 'light' 8 | 9 | export const getThemeCookie = async () => { 10 | if (cookies().has(DEFAULT_COOKIE_KEY)) 11 | return cookies().get(DEFAULT_COOKIE_KEY)?.value as ThemeType 12 | return DEFAULT_COOKIE_VALUE 13 | } 14 | 15 | export const setThemeCookie = async (theme: ThemeType) => { 16 | cookies().set(DEFAULT_COOKIE_KEY, theme) 17 | } -------------------------------------------------------------------------------- /2024/webstats/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "webstats", 3 | "version": "0.1.0", 4 | "private": true, 5 | "scripts": { 6 | "dev": "next dev", 7 | "build": "next build", 8 | "start": "next start", 9 | "lint": "next lint" 10 | }, 11 | "dependencies": { 12 | "@supabase/supabase-js": "^2.40.0", 13 | "dotenv": "^16.4.5", 14 | "next": "14.1.4", 15 | "react": "^18", 16 | "react-dom": "^18" 17 | }, 18 | "devDependencies": { 19 | "@types/node": "^20", 20 | "@types/react": "^18", 21 | "@types/react-dom": "^18", 22 | "autoprefixer": "^10.0.1", 23 | "postcss": "^8", 24 | "tailwindcss": "^3.3.0", 25 | "typescript": "^5" 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /2024/chronicle/src/components/(frontend)/(blog)/BlogArticle/logic/SideDataTemplate.tsx: -------------------------------------------------------------------------------- 1 | import { ChildrenType } from "@/common/types/reactTypes" 2 | 3 | export function SideDataTemplate({ title, gap, children }: { title: string, gap: number | string, children: ChildrenType }) { 4 | return ( 5 | <section className={`flex flex-col justify-start mb-10 gap-4`}> 6 | <span className={`text-xl font-semibold md:font-normal md:text-sm text-black/80 dark:text-white md:text-black/45 md:dark:text-white/40`}>{title}</span> 7 | <div className={`flex flex-col justify-start ${gap}`}> 8 | {children} 9 | </div> 10 | </section> 11 | ) 12 | } -------------------------------------------------------------------------------- /2023/ed.line/educator-site/app/static/scss/home/pages/home.scss: -------------------------------------------------------------------------------- 1 | $color_1: #00A35C; 2 | 3 | .dashboard_home { 4 | width: 100%; 5 | height: 100%; 6 | display: flex; 7 | flex-direction: column; 8 | align-items: center; 9 | justify-content: center; 10 | gap: 30px; 11 | padding: 30px 0; 12 | >* { 13 | width: 100%; 14 | display: flex; 15 | flex-direction: column; 16 | align-items: flex-start; 17 | justify-content: flex-start; 18 | padding: 30px; 19 | } 20 | } 21 | button { 22 | all: unset; 23 | border: 1.4px solid #002738; 24 | padding: 15px 28px; 25 | color: $color_1; 26 | font-weight: 990; 27 | border-radius: 10px; 28 | background: rgba(0,163,92,.005); 29 | } 30 | -------------------------------------------------------------------------------- /2024/webstats/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "lib": ["dom", "dom.iterable", "esnext"], 4 | "allowJs": true, 5 | "skipLibCheck": true, 6 | "strict": true, 7 | "noEmit": true, 8 | "esModuleInterop": true, 9 | "module": "esnext", 10 | "moduleResolution": "bundler", 11 | "resolveJsonModule": true, 12 | "isolatedModules": true, 13 | "jsx": "preserve", 14 | "incremental": true, 15 | "plugins": [ 16 | { 17 | "name": "next" 18 | } 19 | ], 20 | "paths": { 21 | "@/*": ["./src/*"] 22 | } 23 | }, 24 | "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], 25 | "exclude": ["node_modules"] 26 | } 27 | -------------------------------------------------------------------------------- /2023/ed.line/educator-site/app/migrations/0001_initial.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 4.2.7 on 2023-12-16 08:59 2 | 3 | from django.db import migrations, models 4 | 5 | 6 | class Migration(migrations.Migration): 7 | 8 | initial = True 9 | 10 | dependencies = [ 11 | ] 12 | 13 | operations = [ 14 | migrations.CreateModel( 15 | name='educator_pictures', 16 | fields=[ 17 | ('mobile', models.CharField(max_length=11, primary_key=True, serialize=False)), 18 | ('image', models.ImageField(upload_to='media/static/')), 19 | ('name', models.CharField(max_length=60)), 20 | ], 21 | ), 22 | ] 23 | -------------------------------------------------------------------------------- /2024/chronicle/src/app/(frontend)/layout.tsx: -------------------------------------------------------------------------------- 1 | import { ChildrenType } from "@/common/types/reactTypes" 2 | import Footer from "@/components/(frontend)/Footer/Footer" 3 | import Header from "@/components/(frontend)/Header/Header" 4 | // import { getThemeCookie } from "@/server/cookies/theme" 5 | 6 | 7 | 8 | export default async function HomepageLayout({ children }: { children: ChildrenType }) { 9 | // const theme = await getThemeCookie() 10 | return ( 11 | <> 12 | <Header theme={"dark"} /> 13 | <div className="flex flex-col justify-start items-stretch max-w-[1200px] mt-4 mb-10 relative left-1/2 -translate-x-1/2"> {children} </div> 14 | <Footer /> 15 | </> 16 | ) 17 | } -------------------------------------------------------------------------------- /2024/covilla-blogs/site_admin/migrations/0001_initial.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 4.2.7 on 2024-01-10 09:43 2 | 3 | from django.db import migrations, models 4 | import site_admin.models 5 | 6 | 7 | class Migration(migrations.Migration): 8 | 9 | initial = True 10 | 11 | dependencies = [ 12 | ] 13 | 14 | operations = [ 15 | migrations.CreateModel( 16 | name='thumbnails', 17 | fields=[ 18 | ('title', models.CharField(max_length=200, primary_key=True, serialize=False)), 19 | ('image', models.ImageField(upload_to='media/static/thumbnails/', validators=[site_admin.models.validate_image_extension])), 20 | ], 21 | ), 22 | ] 23 | -------------------------------------------------------------------------------- /2024/webstats/tailwind.config.ts: -------------------------------------------------------------------------------- 1 | import type { Config } from "tailwindcss"; 2 | 3 | const config: Config = { 4 | content: [ 5 | "./src/pages/**/*.{js,ts,jsx,tsx,mdx}", 6 | "./src/components/**/*.{js,ts,jsx,tsx,mdx}", 7 | "./src/app/**/*.{js,ts,jsx,tsx,mdx}", 8 | ], 9 | theme: { 10 | extend: { 11 | backgroundImage: { 12 | "gradient-radial": "radial-gradient(var(--tw-gradient-stops))", 13 | "gradient-conic": 14 | "conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))", 15 | }, 16 | fontFamily: { 17 | sans: ['var(--font-outfit)'], 18 | mono: ['var(--font-outfit)'], 19 | } 20 | }, 21 | }, 22 | plugins: [], 23 | }; 24 | export default config; 25 | -------------------------------------------------------------------------------- /2024/chronicle/src/components/(frontend)/(atomic)/LoadMore/LoadMore.tsx: -------------------------------------------------------------------------------- 1 | import { ClassNameType } from "@/common/types/types"; 2 | 3 | export default function LoadMore({ handleClick, label, className }: { handleClick: () => void, label?: string, className?: ClassNameType }) { 4 | return ( 5 | <div className={`p-2 max-w-[370px] relative left-1/2 -translate-x-1/2 rounded-lg text-center bg-zinc-100 dark:bg-[#111] my-6 border-[1.5px] border-black/10 hover:border-black/30 text-black/50 hover:text-black/70 dark:border-white/10 dark:hover:border-white/20 dark:text-white/50 dark:hover:text-white dark:hover:bg-zinc-900 transition-all duration-300 cursor-pointer ${className || ""}`}> 6 | {label || "Load more"} 7 | </div> 8 | ) 9 | } -------------------------------------------------------------------------------- /2024/gittify/utils/templates.py: -------------------------------------------------------------------------------- 1 | import os 2 | import dotenv 3 | from colors import initialize as beautifish_init 4 | from .shell_icons import * 5 | 6 | beautifish = beautifish_init.beautifish_initalize() 7 | 8 | dotenv.load_dotenv() 9 | 10 | def template_no_such_username(): 11 | title = beautifish.gray_text(f"[{CROSS}] Oops...") 12 | data = beautifish.gray_text(f"No such GitHub username exists") 13 | return f"\n{title}\n{data}\n" 14 | 15 | 16 | def template_good_response(command:str,username:str): 17 | if username=="": 18 | username = os.getenv('GITHUB_USERNAME') 19 | return f" {DOT} {beautifish.cyan_text('command:')} {command}\n {DOT} {beautifish.cyan_text('username:')} {username}\n {DOT} {beautifish.cyan_text('data:')} " -------------------------------------------------------------------------------- /2024/chronicle/src/common/links/staticLinks.ts: -------------------------------------------------------------------------------- 1 | const ADMIN_ROOT = `/${process.env.NEXT_PUBLIC_ADMIN_ROOT}` 2 | 3 | export const LINKS = { 4 | HOMEPAGE: '/', 5 | 6 | VIEWER : { 7 | FAVORITES: '/u/favorites', 8 | COMMENTS: '/u/comments', 9 | LIKES: '/u/likes', 10 | 11 | SETTINGS: '/u/settings', 12 | }, 13 | 14 | ADMIN: { 15 | _DEFAULT: `${ADMIN_ROOT}/blogs`, 16 | 17 | ROOT: ADMIN_ROOT, 18 | 19 | BLOGS: `${ADMIN_ROOT}/blogs`, 20 | FOOTER: `${ADMIN_ROOT}/footer`, 21 | DASHBOARD: `${ADMIN_ROOT}/dashboard`, 22 | ANALYTICS: `${ADMIN_ROOT}/analytics`, 23 | } 24 | } 25 | 26 | export const DB_ROUTE = { 27 | BLOGS: `./src/server/db/data/blogs.db` 28 | } -------------------------------------------------------------------------------- /2024/chronicle/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "lib": ["dom", "dom.iterable", "esnext"], 4 | "allowJs": true, 5 | "skipLibCheck": true, 6 | "strict": true, 7 | "noEmit": true, 8 | "esModuleInterop": true, 9 | "module": "esnext", 10 | "moduleResolution": "bundler", 11 | "resolveJsonModule": true, 12 | "isolatedModules": true, 13 | "jsx": "preserve", 14 | "incremental": true, 15 | "plugins": [ 16 | { 17 | "name": "next" 18 | } 19 | ], 20 | "paths": { 21 | "@/*": ["./src/*"] 22 | } 23 | }, 24 | "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts", "src/server/db/client/db-init.js", "src/server/db/schema/blogs.schema.js"], 25 | "exclude": ["node_modules"] 26 | } 27 | -------------------------------------------------------------------------------- /2023/ed.line/.github/workflows/django.yml: -------------------------------------------------------------------------------- 1 | name: Django CI 2 | 3 | on: 4 | push: 5 | branches: [ "main" ] 6 | pull_request: 7 | branches: [ "main" ] 8 | 9 | jobs: 10 | build: 11 | 12 | runs-on: ubuntu-latest 13 | strategy: 14 | max-parallel: 4 15 | matrix: 16 | python-version: [3.7, 3.8, 3.9] 17 | 18 | steps: 19 | - uses: actions/checkout@v3 20 | - name: Set up Python ${{ matrix.python-version }} 21 | uses: actions/setup-python@v3 22 | with: 23 | python-version: ${{ matrix.python-version }} 24 | - name: Install Dependencies 25 | run: | 26 | python -m pip install --upgrade pip 27 | pip install -r requirements.txt 28 | - name: Run Tests 29 | run: | 30 | python manage.py test 31 | -------------------------------------------------------------------------------- /2024/chronicle/src/app/api/images/route.ts: -------------------------------------------------------------------------------- 1 | import { ApiResponseType, ApiReturnType } from "@/common/types/apiTypes" 2 | import { ImageDocument } from "@/common/types/documents/documents" 3 | import { supa } from "@/server/supabase/client/client" 4 | import { TABLE_NAMES } from "@/server/supabase/db/tables" 5 | import { NextRequest, NextResponse } from "next/server" 6 | 7 | export const POST = async (req: NextRequest): Promise<ApiReturnType> => { 8 | const body: ImageDocument = await req.json() 9 | 10 | const { data, error } = await supa.from(TABLE_NAMES.IMAGES_TABLE).insert([body]).select() 11 | 12 | if (data) 13 | return NextResponse.json({ data: data, status: "success" }, { status: 200 }) 14 | return NextResponse.json({ data: null, status: "error" }) 15 | } -------------------------------------------------------------------------------- /2024/webstats/src/utils/asciiBanner.ts: -------------------------------------------------------------------------------- 1 | 'use client' 2 | 3 | export const asciiBanner = () => { 4 | const ascii_banner = "%c\n __ __ __ __ __ __\n / //_/__ __ ___ / / ___ _ / / / //_/__ __ __ _ ___ _ ____\n / ,< / // /(_-< / _ \\/ _ `// / / ,< / // // ' \\/ _ `// __/\n/_/|_| \\_,_//___//_//_/\\_,_//_/ /_/|_| \\_,_//_/_/_/\\_,_//_/\n \n\n %cwelcomes you, fellow programmer. \n" 5 | const links = "Check me out here:\n\n%c • GitHub: https://github.com/bcd-kushal/\n%c • Portfolio: https://portfolio.kushalkumarsaha.com/\n%c • LinkedIn: https://linkedin.com/in/dev-kushal/\n%c • Email: dev@kushalkumarsaha.com\n\n" 6 | 7 | console.log(ascii_banner, 'color: #f07373', 'color: #fff') 8 | console.log(links, 'color: #fff', 'color: #fff', 'color: #fff', 'color: #fff') 9 | } -------------------------------------------------------------------------------- /2023/window-slider/js/test.js: -------------------------------------------------------------------------------- 1 | 2 | let LSide = document.getElementById("side_L"); 3 | let RSide = document.getElementById("side_R"); 4 | let LSide1 = document.getElementById("side_L1"); 5 | let RSide1 = document.getElementById("side_R1"); 6 | window.addEventListener("scroll", function () { 7 | LSide1.style.left = -window.pageYOffset * 1.5 + "px"; 8 | RSide1.style.left = -window.pageYOffset * 1.5 + "px"; 9 | LSide.style.left = -window.pageYOffset * 1.5 + "px"; 10 | RSide.style.left = window.pageYOffset * 1.5 + "px"; 11 | }); 12 | 13 | function scroll_headers() { 14 | var x = setTimeout(abc, 1000); 15 | function abc() { 16 | window.scrollTo({ 17 | top: window.innerHeight, 18 | behavior: "smooth", 19 | }); 20 | } 21 | } -------------------------------------------------------------------------------- /2023/window-slider/ts/test.ts: -------------------------------------------------------------------------------- 1 | 2 | let LSide = document.getElementById("side_L"); 3 | let RSide = document.getElementById("side_R"); 4 | let LSide1 = document.getElementById("side_L1"); 5 | let RSide1 = document.getElementById("side_R1"); 6 | window.addEventListener("scroll", function () { 7 | LSide1.style.left = -window.pageYOffset * 1.5 + "px"; 8 | RSide1.style.left = -window.pageYOffset * 1.5 + "px"; 9 | LSide.style.left = -window.pageYOffset * 1.5 + "px"; 10 | RSide.style.left = window.pageYOffset * 1.5 + "px"; 11 | }); 12 | 13 | function scroll_headers() { 14 | var x = setTimeout(abc, 1000); 15 | function abc() { 16 | window.scrollTo({ 17 | top: window.innerHeight, 18 | behavior: "smooth", 19 | }); 20 | } 21 | } -------------------------------------------------------------------------------- /2024/covilla-blogs/manage.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | """Django's command-line utility for administrative tasks.""" 3 | import os 4 | import sys 5 | 6 | 7 | def main(): 8 | """Run administrative tasks.""" 9 | os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'blogs.settings') 10 | try: 11 | from django.core.management import execute_from_command_line 12 | except ImportError as exc: 13 | raise ImportError( 14 | "Couldn't import Django. Are you sure it's installed and " 15 | "available on your PYTHONPATH environment variable? Did you " 16 | "forget to activate a virtual environment?" 17 | ) from exc 18 | execute_from_command_line(sys.argv) 19 | 20 | 21 | if __name__ == '__main__': 22 | main() 23 | -------------------------------------------------------------------------------- /2023/ed.line/educator-site/manage.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | """Django's command-line utility for administrative tasks.""" 3 | import os 4 | import sys 5 | 6 | 7 | def main(): 8 | """Run administrative tasks.""" 9 | os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'ed_teach.settings') 10 | try: 11 | from django.core.management import execute_from_command_line 12 | except ImportError as exc: 13 | raise ImportError( 14 | "Couldn't import Django. Are you sure it's installed and " 15 | "available on your PYTHONPATH environment variable? Did you " 16 | "forget to activate a virtual environment?" 17 | ) from exc 18 | execute_from_command_line(sys.argv) 19 | 20 | 21 | if __name__ == '__main__': 22 | main() 23 | -------------------------------------------------------------------------------- /2023/ed.line/learner-site/manage.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | """Django's command-line utility for administrative tasks.""" 3 | import os 4 | import sys 5 | 6 | 7 | def main(): 8 | """Run administrative tasks.""" 9 | os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'ed_line.settings') 10 | try: 11 | from django.core.management import execute_from_command_line 12 | except ImportError as exc: 13 | raise ImportError( 14 | "Couldn't import Django. Are you sure it's installed and " 15 | "available on your PYTHONPATH environment variable? Did you " 16 | "forget to activate a virtual environment?" 17 | ) from exc 18 | execute_from_command_line(sys.argv) 19 | 20 | 21 | if __name__ == '__main__': 22 | main() 23 | -------------------------------------------------------------------------------- /2023/ed.line/learner-site/ed_line/manage.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | """Django's command-line utility for administrative tasks.""" 3 | import os 4 | import sys 5 | 6 | 7 | def main(): 8 | """Run administrative tasks.""" 9 | os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'ed_line.settings') 10 | try: 11 | from django.core.management import execute_from_command_line 12 | except ImportError as exc: 13 | raise ImportError( 14 | "Couldn't import Django. Are you sure it's installed and " 15 | "available on your PYTHONPATH environment variable? Did you " 16 | "forget to activate a virtual environment?" 17 | ) from exc 18 | execute_from_command_line(sys.argv) 19 | 20 | 21 | if __name__ == '__main__': 22 | main() 23 | -------------------------------------------------------------------------------- /2023/ed.line/educator-site/app/templates/src/others/privacy.html: -------------------------------------------------------------------------------- 1 | <div class="privacyTermsContainer"> 2 | 3 | <div class="LSOPTC"> 4 | 5 | <a href="/terms/" class="LSOPTCSUBS">Terms and conditions</a> 6 | <a href="/privacy/" class="LSOPTCSUBS" style="color: var(--blue);"><b>Privacy policy</b></a> 7 | <a href="/user-guidelines/" class="LSOPTCSUBS">User guidelines</a> 8 | <a href="/refund-policy/" class="LSOPTCSUBS">Refund policy</a> 9 | <a href="/unsat-terms/" class="LSOPTCSUBS">UNSAT T&C</a> 10 | 11 | </div> 12 | 13 | 14 | 15 | <div class="RSOPTC"> 16 | 17 | {% for x in company_data %} 18 | <div class="RSOPTCDesc"> 19 | {{x.info|safe}} 20 | </div> 21 | {% endfor %} 22 | 23 | </div> 24 | 25 | 26 | 27 | 28 | </div> -------------------------------------------------------------------------------- /2024/chronicle/src/components/(frontend)/(reader)/ReaderNavigation/static/constants.tsx: -------------------------------------------------------------------------------- 1 | import { CommandIcon, MessageCircleIcon, Settings2Icon, StarIcon, ThumbsUpIcon } from "lucide-react" 2 | import { LINKS } from "@/common/links/staticLinks" 3 | import { LinkListType } from "@/common/types/types" 4 | 5 | export const settingsLinks: LinkListType = { 6 | top: [ 7 | { label: 'Favorites', svg: <StarIcon height={16} width={16} />, link: LINKS.VIEWER.FAVORITES }, 8 | { label: 'Comments', svg: <MessageCircleIcon height={16} width={16} />, link: LINKS.VIEWER.COMMENTS }, 9 | { label: 'Likes', svg: <ThumbsUpIcon height={16} width={16} />, link: LINKS.VIEWER.LIKES } 10 | ], 11 | bottom: [ 12 | { label: 'Settings', svg: <Settings2Icon height={16} width={16} />, link: LINKS.VIEWER.SETTINGS } 13 | ] 14 | } -------------------------------------------------------------------------------- /2023/ed.line/educator-site/app/templates/src/others/terms.html: -------------------------------------------------------------------------------- 1 | <div class="privacyTermsContainer"> 2 | 3 | <div class="LSOPTC"> 4 | 5 | <a href="/terms/" class="LSOPTCSUBS" style="color: var(--orange);"><b>Terms and conditions</b></a> 6 | <a href="/privacy/" class="LSOPTCSUBS">Privacy policy</a> 7 | <a href="/user-guidelines/" class="LSOPTCSUBS">User guidelines</a> 8 | <a href="/refund-policy/" class="LSOPTCSUBS">Refund policy</a> 9 | <a href="/unsat-terms/" class="LSOPTCSUBS">UNSAT T&C</a> 10 | 11 | </div> 12 | 13 | 14 | 15 | <div class="RSOPTC"> 16 | 17 | {% for x in company_data %} 18 | <div class="RSOPTCDesc"> 19 | {{x.info|safe}} 20 | </div> 21 | {% endfor %} 22 | 23 | </div> 24 | 25 | 26 | 27 | 28 | </div> -------------------------------------------------------------------------------- /2023/window-slider/css/encrypt.css: -------------------------------------------------------------------------------- 1 | #username:focus { 2 | outline: none; 3 | } 4 | input[type="button"] { 5 | width: 17vw; 6 | height: 6vh; 7 | position: relative; 8 | margin-top: 3vh; 9 | left: 50%; 10 | transform: translateX(-50%); 11 | z-index: 90; 12 | font-size: 3vh; 13 | cursor: pointer; 14 | background: transparent; 15 | border: none; 16 | transition: 0.5s; 17 | -webkit-text-stroke: 0px #101820ff; 18 | font-weight: bolder; 19 | color: #f2aa4cff; 20 | } 21 | input[type="button"]:nth-child(1) { 22 | border: 1.5px solid #f2aa4cff; 23 | transition: 0.5s; 24 | } 25 | input[type="button"]:nth-child(1):hover { 26 | background: #f2aa4cff; 27 | color: #101820ff; 28 | } 29 | 30 | input[type="button"]:nth-child(2):hover { 31 | border: 1.5px solid #f2aa4cff; 32 | transition: 0.5s; 33 | } 34 | -------------------------------------------------------------------------------- /2023/ed.line/learner-site/app/static/svg/landing/highlightminswatched_fe52bc4026_ca82eba8b0 (1).svg: -------------------------------------------------------------------------------- 1 | <svg width="284" height="180" viewBox="0 0 284 180" fill="none" xmlns="http://www.w3.org/2000/svg"> 2 | <mask id="mask0" mask-type="alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="284" height="180"> 3 | <rect width="284" height="180" rx="8" fill="white"/> 4 | </mask> 5 | <g mask="url(#mask0)"> 6 | <path d="M164.741 151.124C161.567 146.605 161.328 140.718 164.358 136.102C172.921 123.062 194.751 97.8469 235.537 97.8457C288.084 97.8442 316 143.717 316 143.717C316 143.717 294.483 187.949 238.821 187.949C198.34 185.752 177.424 169.181 164.741 151.124Z" fill="#DDE6ED"/> 7 | <circle cx="237.241" cy="143.653" r="28.9983" fill="#9AAFBF"/> 8 | <g style="mix-blend-mode:hard-light"> 9 | <circle cx="221.86" cy="127.43" r="10.7586" fill="white"/> 10 | </g> 11 | </g> 12 | </svg> 13 | -------------------------------------------------------------------------------- /2023/ed.line/learner-site/app/static/svg/landing/highlightminswatched_fe52bc4026_ca82eba8b0.svg: -------------------------------------------------------------------------------- 1 | <svg width="284" height="180" viewBox="0 0 284 180" fill="none" xmlns="http://www.w3.org/2000/svg"> 2 | <mask id="mask0" mask-type="alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="284" height="180"> 3 | <rect width="284" height="180" rx="8" fill="white"/> 4 | </mask> 5 | <g mask="url(#mask0)"> 6 | <path d="M164.741 151.124C161.567 146.605 161.328 140.718 164.358 136.102C172.921 123.062 194.751 97.8469 235.537 97.8457C288.084 97.8442 316 143.717 316 143.717C316 143.717 294.483 187.949 238.821 187.949C198.34 185.752 177.424 169.181 164.741 151.124Z" fill="#DDE6ED"/> 7 | <circle cx="237.241" cy="143.653" r="28.9983" fill="#9AAFBF"/> 8 | <g style="mix-blend-mode:hard-light"> 9 | <circle cx="221.86" cy="127.43" r="10.7586" fill="white"/> 10 | </g> 11 | </g> 12 | </svg> 13 | -------------------------------------------------------------------------------- /2024/chronicle/src/components/(frontend)/LinksList/LinksList.tsx: -------------------------------------------------------------------------------- 1 | 'use client' 2 | import { LinkListType } from "@/common/types/types" 3 | import Link from "next/link" 4 | import { usePathname } from "next/navigation" 5 | 6 | export default function LinksList({ list }: { list: LinkListType["bottom"] | LinkListType["top"] }) { 7 | const currPath = usePathname() 8 | return ( 9 | <> 10 | {list.map(({ label, svg, link }, index) => ( 11 | <Link href={link} prefetch key={index} className={`flex items-center gap-3 py-3 text-sm transition-colors duration-300 rounded-lg ${link.toLowerCase() === currPath.toLowerCase() ? 'text-blue-500' : 'dark:text-white/60 dark:hover:text-white'}`}> 12 | {svg} 13 | <span>{label}</span> 14 | </Link> 15 | ))} 16 | </> 17 | ) 18 | } -------------------------------------------------------------------------------- /2023/ed.line/learner-site/app/forms.py: -------------------------------------------------------------------------------- 1 | from django import forms 2 | 3 | class LoginForm(forms.Form): 4 | username = forms.CharField( 5 | max_length=100 6 | ) 7 | password = forms.CharField( 8 | widget=forms.PasswordInput() 9 | ) 10 | 11 | 12 | 13 | 14 | class SignupForm(forms.Form): 15 | user = forms.CharField(max_length=100) # mobile number: PK 16 | fname = forms.CharField(max_length=100) 17 | # lname = forms.CharField(max_length=100) 18 | email = forms.CharField( 19 | max_length=100, 20 | widget=forms.EmailInput() 21 | ) 22 | pass1 = forms.CharField( 23 | widget=forms.PasswordInput() 24 | ) 25 | 26 | 27 | -------------------------------------------------------------------------------- /2023/window-slider/jquery/pics.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function () { 2 | $(".submitForm1").click(function () { 3 | window.scrollTo({ 4 | top: 0, 5 | behavior: "smooth", 6 | }); 7 | setTimeout(function () { 8 | $(".form1").submit(); 9 | }, 1000); 10 | }); 11 | $("#re1").click(function () { 12 | window.scrollTo({ 13 | top: 0, 14 | behavior: "smooth", 15 | }); 16 | setTimeout(function () { 17 | window.location.href = "index.html"; 18 | }, 1000); 19 | }); 20 | $("#re3").click(function () { 21 | window.scrollTo({ 22 | top: 0, 23 | behavior: "smooth", 24 | }); 25 | setTimeout(function () { 26 | window.location.href = "index_3b.html"; 27 | }, 1000); 28 | }); 29 | }); -------------------------------------------------------------------------------- /2024/webstats/src/utils/consoleAndTraffic/console.tsx: -------------------------------------------------------------------------------- 1 | 'use client' 2 | import { useEffect } from "react" 3 | 4 | export const AsciiBanner = () => { 5 | const ascii_banner = "%c\n __ __ __ __ __ __\n / //_/__ __ ___ / / ___ _ / / / //_/__ __ __ _ ___ _ ____\n / ,< / // /(_-< / _ \\/ _ `// / / ,< / // // ' \\/ _ `// __/\n/_/|_| \\_,_//___//_//_/\\_,_//_/ /_/|_| \\_,_//_/_/_/\\_,_//_/\n \n\n %cwelcomes you, fellow programmer. \n" 6 | const links = "Check me out here:\n\n%c • GitHub: https://github.com/bcd-kushal/\n%c • Portfolio: https://portfolio.kushalkumarsaha.com/\n%c • LinkedIn: https://linkedin.com/in/dev-kushal/\n%c • Email: dev@kushalkumarsaha.com\n\n" 7 | useEffect(() => { 8 | console.log(ascii_banner, 'color: #f07373', 'color: #fff') 9 | console.log(links, 'color: #fff', 'color: #fff', 'color: #fff', 'color: #fff') 10 | }, []) 11 | return (null) 12 | } -------------------------------------------------------------------------------- /2024/chronicle/src/app/layout.tsx: -------------------------------------------------------------------------------- 1 | import type { Metadata } from "next" 2 | import { Inter as FontSans } from "next/font/google" 3 | import "./globals.css" 4 | import "@/decorators/blogImageTemplates.css" 5 | import { ChildrenType } from "@/common/types/reactTypes" 6 | import { cn } from "@/lib/utils" 7 | 8 | const fontsans = FontSans({ subsets: ["latin"], variable: "--font-sans" }) 9 | 10 | export const metadata: Metadata = { 11 | title: "Create Next App", 12 | description: "Generated by create next app", 13 | } 14 | 15 | export default async function RootLayout({ children }: { children: ChildrenType }) { 16 | // const theme = await getThemeCookie() 17 | return ( 18 | <html lang="en" className={"dark"} suppressHydrationWarning> 19 | <body className={cn("min-h-screen bg-background font-sans antialiased relative", fontsans.variable)}> 20 | {children} 21 | </body> 22 | </html> 23 | ) 24 | } 25 | -------------------------------------------------------------------------------- /2024/chronicle/src/components/(frontend)/ThemeSwitch/ThemeSwitch.tsx: -------------------------------------------------------------------------------- 1 | 'use client' 2 | import { ThemeType } from "@/common/types/types" 3 | import { MoonStarIcon, SunIcon } from "lucide-react" 4 | import { toggleTheme } from "./functions/toggleTheme" 5 | 6 | export default function ThemeSwitch({ theme }: { theme: ThemeType }) { 7 | return ( 8 | <span className="group p-2 aspect-square transition-all duration-300 rounded-lg cursor-pointer hover:bg-gray-100 dark:hover:bg-zinc-800 flex" onClick={() => toggleTheme(theme)}> 9 | {theme === 'dark' ? <MoonStarIcon width={20} height={20} className="stroke-zinc-500 transition-colors duration-300 group-hover:stroke-black dark:group-hover:stroke-white" /> : <SunIcon width={20} height={20} className="stroke-gray-500 transition-colors duration-300 group-hover:stroke-black dark:group-hover:stroke-white" />} 10 | </span> 11 | ) 12 | } -------------------------------------------------------------------------------- /2024/chronicle/src/decorators/blogData.module.css: -------------------------------------------------------------------------------- 1 | .blogArticle h1 { 2 | display: block; 3 | font-weight: 800; 4 | font-size: 32px; 5 | line-height: 40px; 6 | margin-bottom: 20px; 7 | } 8 | 9 | .blogArticle h2 { 10 | display: block; 11 | font-weight: 600; 12 | font-size: 26px; 13 | line-height: 32px; 14 | padding: 36px 0 24px ; 15 | } 16 | 17 | .blogArticle p { 18 | margin: 0 0 24px; 19 | } 20 | 21 | .blogArticle a { 22 | color: #3b82f6; 23 | cursor: pointer; 24 | transition: .3s; 25 | } 26 | 27 | .blogArticle a:hover { 28 | text-decoration: underline; 29 | text-underline-offset: 4px; 30 | } 31 | 32 | 33 | @media (min-width:768px) { 34 | .blogArticle p { 35 | font-size: 18px; 36 | } 37 | 38 | .blogArticle h2 { 39 | font-weight: 700; 40 | font-size: 26px; 41 | } 42 | } -------------------------------------------------------------------------------- /2023/ed.line/learner-site/app/static/svg/landing/hightlighteducators_c894789a76_58c2a07e52.svg: -------------------------------------------------------------------------------- 1 | <svg width="284" height="180" viewBox="0 0 284 180" fill="none" xmlns="http://www.w3.org/2000/svg"> 2 | <mask id="mask0" mask-type="alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="284" height="180"> 3 | <rect width="284" height="180" rx="8" fill="white"/> 4 | </mask> 5 | <g mask="url(#mask0)"> 6 | <ellipse cx="267.96" cy="126.951" rx="19.0175" ry="19.631" fill="#E8F1FF"/> 7 | <path d="M267.872 151.566C247.931 151.566 231.766 167.879 231.766 188.001H303.978C303.978 167.879 287.812 151.566 267.872 151.566Z" fill="#E8F1FF"/> 8 | <ellipse cx="208.766" cy="114.737" rx="22.9955" ry="23.7373" fill="#2D81F7"/> 9 | <g style="mix-blend-mode:multiply"> 10 | <path d="M208.658 143.469C184.547 143.469 165 163.193 165 187.524H252.317C252.317 163.193 232.77 143.469 208.658 143.469Z" fill="#2D81F7"/> 11 | </g> 12 | </g> 13 | </svg> 14 | -------------------------------------------------------------------------------- /2024/chronicle/src/app/(frontend)/u/layout.tsx: -------------------------------------------------------------------------------- 1 | import { ChildrenType } from "@/common/types/reactTypes" 2 | import ReaderMobileNavigations from "@/components/(frontend)/(reader)/ReaderNavigation/ReaderMobileNavigation" 3 | import ReaderPCNavigations from "@/components/(frontend)/(reader)/ReaderNavigation/ReaderPCNavigation" 4 | 5 | 6 | export default async function ReaderPageLayout({ children }: { children: ChildrenType }) { 7 | return ( 8 | <div className="relative sm:grid sm:grid-cols-[220px_auto]"> 9 | <ReaderPCNavigations /> 10 | <main className="px-3 sm:pl-7 sm:pr-0 sm:border-l-[1px] sm:dark:border-zinc-500/50 min-h-screen sm:min-h-[calc(100dvh_-_180px)]"> 11 | {children} 12 | </main> 13 | 14 | {/* for mobile layout ---------------------*/} 15 | <ReaderMobileNavigations /> 16 | </div> 17 | ) 18 | } 19 | -------------------------------------------------------------------------------- /2024/chronicle/src/app/(frontend)/[blogId]/layout.tsx: -------------------------------------------------------------------------------- 1 | import { GET_ALL_BLOGS_API_ROUTE } from "@/common/links/fetchRoutes" 2 | import { BLOGPAGE_SSG_REVLAIDATION } from "@/common/constants/revalidateIntervals" 3 | import { ChildrenType } from "@/common/types/reactTypes" 4 | import { Share2Icon, StarIcon, ThumbsDownIcon, ThumbsUpIcon } from "lucide-react" 5 | import LikesDislikes from "@/components/(frontend)/(blog)/LikesDislikes/LikesDislikes" 6 | import Favorite from "@/components/(frontend)/(blog)/Favorite/Favorite" 7 | 8 | export async function generateStaticParams() { 9 | const url = GET_ALL_BLOGS_API_ROUTE() 10 | const blogs = await fetch(url, { next: { revalidate: BLOGPAGE_SSG_REVLAIDATION } }).then(res => res.json()) 11 | 12 | return blogs 13 | } 14 | 15 | export default function BlogPostLayout({ children }: { children: ChildrenType }) { 16 | return ( 17 | <> 18 | {children} 19 | </> 20 | ) 21 | } -------------------------------------------------------------------------------- /2024/webstats/src/app/globals.css: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; 4 | 5 | 6 | :root { 7 | --accent: 136, 58, 234; 8 | --accent-light: 224, 204, 250; 9 | --accent-dark: 49, 10, 101; 10 | --accent-gradient: linear-gradient( 11 | 45deg, 12 | rgb(var(--accent)), 13 | rgb(var(--accent-light)) 30%, 14 | white 60% 15 | ); 16 | } 17 | *{ 18 | margin: 0; 19 | padding: 0; 20 | box-sizing: border-box; 21 | font-family: "Outfit"; 22 | font-weight: 400; 23 | font-style: normal; 24 | color: #ededed; 25 | scroll-behavior: smooth; 26 | } 27 | body { 28 | min-height: 100dvh; 29 | } 30 | html { 31 | background: #121212; 32 | min-height: 100dvh; 33 | min-width: 100dvw; 34 | } 35 | 36 | .scrollbar-hide::-webkit-scrollbar { display: none; } 37 | 38 | .main { height: calc(100dvh - 256px); } 39 | 40 | @media (max-width:768px) { 41 | .main { height: auto; } 42 | } -------------------------------------------------------------------------------- /2024/gittify/errors/class_module.py: -------------------------------------------------------------------------------- 1 | 2 | import warnings 3 | warnings.filterwarnings("ignore") 4 | 5 | from utils.logs import * 6 | 7 | from colors import initialize as decorator_init 8 | beautifish = decorator_init.beautifish_initalize() 9 | 10 | 11 | class Warning: 12 | def malformed_command(self,str:str): 13 | title = beautifish.red_text(f"[!] MALFORMED COMMAND:") 14 | msg = beautifish.yellow_text(f"'{str}' is not a command") 15 | footer = help_line() 16 | return f"\n{title}\n{msg}\n{footer}\n" 17 | 18 | def warning(self,str:str=""): 19 | title = beautifish.orange_text(f"[ WARNING ]") 20 | msg = beautifish.yellow_text(str) 21 | return f"\n{title}{msg}\n" 22 | 23 | def shell_exit(self): 24 | title = beautifish.purple_text(f"[^^] Thanks for using GITTY!!") 25 | msg = beautifish.pink_text(f"Use the service again later!") 26 | return f"\n\n{title}\n{msg}\n\n" -------------------------------------------------------------------------------- /2023/ed.line/learner-site/app/static/svg/theme/dark_theme.svg: -------------------------------------------------------------------------------- 1 | <svg xmlns="http://www.w3.org/2000/svg" width="310" height="171" fill="none"><mask id="a" fill="#fff"><path d="M0 0h310v166a5 5 0 0 1-5 5H5a5 5 0 0 1-5-5V0Z"/></mask><path fill="#5C6C75" d="M0 0h310v166a5 5 0 0 1-5 5H5a5 5 0 0 1-5-5V0Z"/><path fill="#889397" d="M0-1h310v2H0v-2Zm310 172H0h310ZM0 171V0v171ZM310 0v171V0Z" mask="url(#a)"/><rect width="215" height="147" x="47.5" y="12.5" fill="#001E2B" stroke="#1C2D38" rx="5.5"/><path fill="#1C2D38" d="M47 18a6 6 0 0 1 6-6h50v148H53a6 6 0 0 1-6-6V18Z"/><circle cx="61" cy="26" r="6" fill="#00ED64"/><rect width="120" height="8" x="119" y="83" fill="#889397" rx="4"/><rect width="32" height="8" x="119" y="67" fill="#889397" rx="4"/><rect width="32" height="8" x="155" y="67" fill="#889397" rx="4"/><rect width="32" height="8" x="191" y="67" fill="#00ED64" rx="4"/><rect width="120" height="8" x="119" y="99" fill="#889397" rx="4"/><rect width="120" height="8" x="119" y="115" fill="#889397" rx="4"/></svg> -------------------------------------------------------------------------------- /2023/ed.line/learner-site/app/static/svg/theme/light_theme.svg: -------------------------------------------------------------------------------- 1 | <svg xmlns="http://www.w3.org/2000/svg" width="310" height="171" fill="none"><mask id="a" fill="#fff"><path d="M0 0h310v166a5 5 0 0 1-5 5H5a5 5 0 0 1-5-5V0Z"/></mask><path fill="#F9FBFA" d="M0 0h310v166a5 5 0 0 1-5 5H5a5 5 0 0 1-5-5V0Z"/><path fill="#889397" d="M0-1h310v2H0v-2Zm310 172H0h310ZM0 171V0v171ZM310 0v171V0Z" mask="url(#a)"/><rect width="215" height="147" x="47.5" y="12.5" fill="#fff" stroke="#E8EDEB" rx="5.5"/><path fill="#E8EDEB" d="M47 18a6 6 0 0 1 6-6h50v148H53a6 6 0 0 1-6-6V18Z"/><circle cx="61" cy="26" r="6" fill="#00684A"/><rect width="120" height="8" x="119" y="83" fill="#E8EDEB" rx="4"/><rect width="32" height="8" x="119" y="67" fill="#E8EDEB" rx="4"/><rect width="32" height="8" x="155" y="67" fill="#E8EDEB" rx="4"/><rect width="32" height="8" x="191" y="67" fill="#00684A" rx="4"/><rect width="120" height="8" x="119" y="99" fill="#E8EDEB" rx="4"/><rect width="120" height="8" x="119" y="115" fill="#E8EDEB" rx="4"/></svg> -------------------------------------------------------------------------------- /2024/chronicle/src/server/supabase/db/tables.ts: -------------------------------------------------------------------------------- 1 | export type TableNamesType = { 2 | BLOG_ATOMIC_TABLE: string, 3 | BLOG_CARD_TABLE: string, 4 | BLOG_COMMENTS_TABLE: string, 5 | BLOG_FULL_TABLE: string, 6 | BLOG_METRICS_TABLE: string, 7 | COMMENTS_TABLE: string, 8 | IMAGES_TABLE: string, 9 | READER_ATOMIC_TABLE: string, 10 | READER_FULL_TABLE: string, 11 | READER_PROFILE_TABLE: string, 12 | TAGS_TABLE: string 13 | } 14 | 15 | export const TABLE_NAMES: TableNamesType = 16 | { 17 | BLOG_ATOMIC_TABLE: 'blog_atomic', 18 | BLOG_CARD_TABLE: 'blog_card', 19 | BLOG_COMMENTS_TABLE: 'blog_comments', 20 | BLOG_FULL_TABLE: 'blog_full', 21 | BLOG_METRICS_TABLE: 'blog_metrics', 22 | COMMENTS_TABLE: 'comments', 23 | IMAGES_TABLE: 'images', 24 | READER_ATOMIC_TABLE: 'reader_atomic', 25 | READER_FULL_TABLE: 'reader_full', 26 | READER_PROFILE_TABLE: 'reader_profile', 27 | TAGS_TABLE: 'tags' 28 | } -------------------------------------------------------------------------------- /2023/ed.line/educator-site/app/static/scss/error/error.scss: -------------------------------------------------------------------------------- 1 | $color_1: #fcfcfc; 2 | 3 | .errorField { 4 | width: 400px; 5 | height: 100%; 6 | display: flex; 7 | flex-direction: column; 8 | gap: 7px; 9 | padding: 72px 0 20px; 10 | margin-bottom: 80px; 11 | align-items: center; 12 | justify-content: flex-start; 13 | } 14 | .err_title { 15 | padding: 15px 0 0; 16 | font-size: 1.65rem; 17 | font-weight: 990; 18 | } 19 | .err_subtitle { 20 | font-size: .9rem; 21 | } 22 | .goHome_btn { 23 | a { 24 | background: var(--green); 25 | color: $color_1; 26 | display: flex; 27 | align-items: center; 28 | justify-content: center; 29 | height: 40px; 30 | width: 80px; 31 | border-radius: 8px; 32 | margin-top: 25px; 33 | text-decoration: none; 34 | font-weight: bold; 35 | font-size: .83rem; 36 | font-weight: 990; 37 | } 38 | } 39 | @media (max-width: 410px) { 40 | .errorImg { 41 | img { 42 | scale: .7; 43 | } 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /2023/ed.line/learner-site/app/static/scss/error/error.scss: -------------------------------------------------------------------------------- 1 | $color_1: #fcfcfc; 2 | 3 | .errorField { 4 | width: 400px; 5 | height: 100%; 6 | display: flex; 7 | flex-direction: column; 8 | gap: 7px; 9 | padding: 72px 0 20px; 10 | margin-bottom: 80px; 11 | align-items: center; 12 | justify-content: flex-start; 13 | } 14 | .err_title { 15 | padding: 15px 0 0; 16 | font-size: 1.65rem; 17 | font-weight: 990; 18 | } 19 | .err_subtitle { 20 | font-size: .9rem; 21 | } 22 | .goHome_btn { 23 | a { 24 | background: var(--green); 25 | color: $color_1; 26 | display: flex; 27 | align-items: center; 28 | justify-content: center; 29 | height: 40px; 30 | width: 80px; 31 | border-radius: 8px; 32 | margin-top: 25px; 33 | text-decoration: none; 34 | font-weight: bold; 35 | font-size: .83rem; 36 | font-weight: 990; 37 | } 38 | } 39 | @media (max-width: 410px) { 40 | .errorImg { 41 | img { 42 | scale: .7; 43 | } 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /2024/gittify/structure.md: -------------------------------------------------------------------------------- 1 | 2 | <!--- BEAUTIFISH -----------------> 3 | 4 | 5 | 6 | 7 | 8 | 9 | <!--- ERRORISTIC -----------------> 10 | 11 | 12 | 13 | 14 | 15 | 16 | <!--- GITTY -----------------> 17 | --command structure: 18 | {command} {username/log} {options} 19 | 20 | {command}: 21 | <!-- automated monitorance --> 22 | monitor_contributions 23 | <!-- read api data --> 24 | get_user_info 25 | get_user_repositories 26 | get_daily_contributions 27 | get_todays_contributions 28 | 29 | 30 | 31 | {username}: 32 | default registered user's github username 33 | else mention desired github username 34 | {log}: 35 | --help logs out help for this service 36 | --commands log out all supported commands 37 | --version log out current version of gitty 38 | --about log out the about section of gitty 39 | 40 | 41 | {options}: 42 | -s saves the data in json format 43 | -------------------------------------------------------------------------------- /2023/ed.line/learner-site/app/static/svg/landing/highlightgoals_96d24a04e7_a8e8de225d.svg: -------------------------------------------------------------------------------- 1 | <svg width="284" height="180" viewBox="0 0 284 180" fill="none" xmlns="http://www.w3.org/2000/svg"> 2 | <mask id="mask0" mask-type="alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="284" height="180"> 3 | <rect width="284" height="180" rx="8" fill="white"/> 4 | </mask> 5 | <g mask="url(#mask0)"> 6 | <path d="M161.391 88.0269C198.054 82.9285 217.736 98.0644 226.226 105.993L226.998 162.494H161.391V88.0269Z" fill="#FFF1DE"/> 7 | <path d="M289.013 88.0269C252.35 82.9285 232.667 98.0644 224.177 105.993L223.405 162.494H289.013V88.0269Z" fill="#FFF1DE"/> 8 | <path d="M156 95.9935C189.18 88.1418 217.158 99.2651 227 105.808V180.47H156V95.9935Z" fill="#FFAD3B"/> 9 | <path d="M298 95.9935C264.82 88.1418 236.842 99.2651 227 105.808V180.47H298V95.9935Z" fill="#FFDBA9"/> 10 | <g style="mix-blend-mode:color-burn"> 11 | <ellipse cx="226.102" cy="143.173" rx="13.481" ry="13.9304" fill="#FFAD3B"/> 12 | </g> 13 | </g> 14 | </svg> 15 | -------------------------------------------------------------------------------- /2023/ed.line/educator-site/app/templates/src/error/error_page.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | <div class="errorField"> 4 | 5 | <div class="errorImg"> 6 | <img src="https://static.uacdn.net/production/_next/static/images/error.svg?q=75&auto=format%2Ccompress&w=828" alt=""> 7 | </div> 8 | 9 | 10 | <div class="err_title"> 11 | {% if bad_request %} 12 | Page Not Accessible... 13 | {% endif %} 14 | 15 | {% if bad_route %} 16 | Oops! Page not found... 17 | {% endif %} 18 | </div> 19 | 20 | <div class="err_subtitle"> 21 | {% if bad_request %} 22 | The requested method was unauthorized 23 | {% endif %} 24 | 25 | {% if bad_route %} 26 | Looks like you're looking for something that doesn't exist. 27 | {% endif %} 28 | </div> 29 | 30 | 31 | <div class="goHome_btn"> 32 | <a href="/">Go Home</a> 33 | </div> 34 | 35 | 36 | 37 | </div> -------------------------------------------------------------------------------- /2024/chronicle/src/components/(frontend)/(blog)/LikesDislikes/utils/constants.ts: -------------------------------------------------------------------------------- 1 | import { LikeDislikeStateType } from "./types" 2 | 3 | const SELECTED_STYLES = { 4 | TEXT: 'text-blue-600', 5 | BG: 'bg-[#2563eb15] hover:bg-[#2563eb40]', 6 | BORDER: 'border-blue-500 dark:border-blue-800' 7 | } 8 | const DFEAULT_STYLES = { 9 | TEXT: 'text-black/70 dark:text-white/55 hover:text-white', 10 | BG: 'bg-transparent', 11 | BORDER: 'border-black/20 md:border-black/40 dark:border-white/10' 12 | } 13 | 14 | export const COMMON_STYLES = 'flex items-center justify-center gap-2 text-[15px] border-[1.5px] cursor-pointer transition-all duration-300' 15 | export const FULL_DEFAULT_STYLES = `${DFEAULT_STYLES.BG} ${DFEAULT_STYLES.TEXT} ${DFEAULT_STYLES.BORDER}` 16 | export const FULL_SELECTED_STYLES = `${SELECTED_STYLES.BG} ${SELECTED_STYLES.TEXT} ${SELECTED_STYLES.BORDER}` 17 | 18 | 19 | 20 | export const DEFAULT_SELECTED_STATE: LikeDislikeStateType = 'none' -------------------------------------------------------------------------------- /2024/chronicle/src/components/(frontend)/(reader)/ReaderCard/static/data.tsx: -------------------------------------------------------------------------------- 1 | import { StarIcon, MessageCircleIcon, ThumbsUpIcon, Settings2Icon } from "lucide-react" 2 | 3 | export const readerActions = ({ favorite, comment, like, setting }: { favorite: string, comment: string, like: string, setting: string }) => [ 4 | { label: "Favorites", link: favorite, svg: <StarIcon height={20} width={20} className="transition-all duration-300 group-hover:stroke-white sm:group-hover:stroke-yellow-600" /> }, 5 | { label: "Comments", link: comment, svg: <MessageCircleIcon height={20} width={20} className="transition-all duration-300 group-hover:stroke-white sm:group-hover:stroke-green-700" /> }, 6 | { label: "Likes", link: like, svg: <ThumbsUpIcon height={20} width={20} className="transition-all duration-300 group-hover:stroke-white sm:group-hover:stroke-blue-500" /> }, 7 | { label: "Settings", link: setting, svg: <Settings2Icon height={20} width={20} className="transition-all duration-300 group-hover:stroke-white" /> }, 8 | ] -------------------------------------------------------------------------------- /2023/ed.line/educator-site/app/static/scss/universal/header.scss: -------------------------------------------------------------------------------- 1 | $color_1: aliceblue; 2 | 3 | .header { 4 | width: 82px; 5 | height: 100%; 6 | display: flex; 7 | flex-direction: column; 8 | gap: 20px; 9 | padding: 20px 15px; 10 | background: #112733; 11 | overflow-x: hidden; 12 | align-items: stretch; 13 | justify-content: space-between; 14 | >* { 15 | display: flex; 16 | flex-direction: column; 17 | gap: 20px; 18 | align-items: stretch; 19 | justify-content: flex-start; 20 | border-radius: 10px; 21 | >* { 22 | display: flex; 23 | align-items: center; 24 | justify-content: center; 25 | background: rgba(166,166,166,.05); 26 | padding: 10px 0; 27 | border-radius: 10px; 28 | text-decoration: none; 29 | color: $color_1; 30 | font-weight: 990; 31 | width: 100%; 32 | height: 52px; 33 | &:hover { 34 | background: rgba(166,166,166,.17); 35 | } 36 | } 37 | } 38 | } 39 | .RSideOtherH { 40 | font-size: .85rem !important; 41 | } 42 | .xyz { 43 | display: none; 44 | } 45 | -------------------------------------------------------------------------------- /2024/chronicle/src/common/links/fetchRoutes.ts: -------------------------------------------------------------------------------- 1 | import { getSlug } from "../utils/getSlug" 2 | import { DOMAIN } from "../constants/domain" 3 | 4 | const COMMON = `${DOMAIN}/api` 5 | 6 | /************************************************** 7 | ** BLOGS ************** 8 | **************************************************/ 9 | export const GET_ALL_BLOGS_API_ROUTE = () => `${COMMON}/blogs` 10 | export const GET_BLOG_API_ROUTE = (id:string) => `${COMMON}/blogs/${getSlug(id)}` 11 | 12 | 13 | 14 | /************************************************** 15 | ** FOOTER ************** 16 | **************************************************/ 17 | 18 | 19 | 20 | /************************************************** 21 | ** ANALYTICS ************** 22 | **************************************************/ 23 | 24 | 25 | 26 | /************************************************** 27 | ** THEME ************** 28 | **************************************************/ 29 | export const GET_THEME_API_ROUTE = () => `${COMMON}/theme` -------------------------------------------------------------------------------- /2023/ed.line/learner-site/app/static/svg/landing/highlightfreecourses_bb697dbd44_47fe832f07.svg: -------------------------------------------------------------------------------- 1 | <svg width="284" height="180" viewBox="0 0 284 180" fill="none" xmlns="http://www.w3.org/2000/svg"> 2 | <mask id="mask0" mask-type="alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="284" height="180"> 3 | <rect width="284" height="180" rx="8" fill="white"/> 4 | </mask> 5 | <g mask="url(#mask0)"> 6 | <rect x="166" y="84.084" width="123.627" height="184.789" fill="#FFAD3B"/> 7 | <rect x="179.014" y="99.7012" width="98.9014" height="147.051" fill="#FFE1B8"/> 8 | <rect x="186.823" y="108.812" width="31.232" height="31.232" fill="white"/> 9 | <rect x="186.823" y="158.152" width="31.232" height="31.232" fill="white"/> 10 | <rect x="223.259" y="114.014" width="49.4507" height="6.50667" fill="white"/> 11 | <rect opacity="0.5" x="223.258" y="125.727" width="24.7253" height="6.50667" fill="white"/> 12 | <rect x="223.259" y="163.354" width="49.4507" height="6.50667" fill="white"/> 13 | <rect opacity="0.5" x="223.259" y="175.068" width="24.7253" height="6.50667" fill="white"/> 14 | </g> 15 | </svg> 16 | -------------------------------------------------------------------------------- /2023/window-slider/css/3b.css: -------------------------------------------------------------------------------- 1 | .main_body section:before { 2 | content: ""; 3 | position: absolute; 4 | width: 650px; 5 | height: 650px; 6 | background: linear-gradient(#1eff29, #3c91ff); 7 | border-radius: 50%; 8 | transform: translate(calc(0vw - 550px), -20vh); 9 | animation: bubbles 60s linear infinite; 10 | transition: 0.2s; 11 | } 12 | @keyframes bubbles { 13 | 0%, 14 | 100% { 15 | transform: translate(calc(0vw - 550px), -20vh); 16 | } 17 | 50% { 18 | transform: translate(calc(0vw - 250px), 20vh); 19 | } 20 | } 21 | .main_body section:after { 22 | content: ""; 23 | position: absolute; 24 | width: 350px; 25 | height: 350px; 26 | background: linear-gradient(#ccc45b, #f33a21); 27 | border-radius: 50%; 28 | transform: translate(400px, -120px); 29 | animation: bubbles2 60s linear infinite; 30 | transition: 0.2s; 31 | } 32 | @keyframes bubbles2 { 33 | 0%, 34 | 100% { 35 | transform: translate(41vw, -120px); 36 | } 37 | 50% { 38 | transform: translate(220px, -10px); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /2023/window-slider/css/time.css: -------------------------------------------------------------------------------- 1 | .main_body section:before { 2 | content: ""; 3 | position: absolute; 4 | width: 650px; 5 | height: 650px; 6 | background: linear-gradient(#1ee94a, #e4ece5); 7 | border-radius: 50%; 8 | transform: translate(calc(0vw - 550px), -20vh); 9 | animation: bubbles 60s linear infinite; 10 | transition: 0.2s; 11 | } 12 | @keyframes bubbles { 13 | 0%, 14 | 100% { 15 | transform: translate(calc(0vw - 550px), -20vh); 16 | } 17 | 50% { 18 | transform: translate(calc(0vw - 250px), 20vh); 19 | } 20 | } 21 | .main_body section:after { 22 | content: ""; 23 | position: absolute; 24 | width: 350px; 25 | height: 350px; 26 | background: linear-gradient(#f321a3, #c531ff); 27 | border-radius: 50%; 28 | transform: translate(400px, -120px); 29 | animation: bubbles2 60s linear infinite; 30 | transition: 0.2s; 31 | } 32 | @keyframes bubbles2 { 33 | 0%, 34 | 100% { 35 | transform: translate(41vw, -120px); 36 | } 37 | 50% { 38 | transform: translate(220px, -10px); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /2024/chronicle/src/components/pages/BlogPage.tsx: -------------------------------------------------------------------------------- 1 | import { GET_BLOG_API_ROUTE } from "@/common/links/fetchRoutes" 2 | import { BLOGPAGE_REVALIDATION } from "@/common/constants/revalidateIntervals" 3 | import { NextResponseType } from "@/common/types/types" 4 | import BlogArticle from "@/components/(frontend)/(blog)/BlogArticle/BlogArticle" 5 | import { notFound } from "next/navigation" 6 | 7 | 8 | const getBlogArticle = async ({ blogId }: { blogId: string }): Promise<string | null> => { 9 | const url = GET_BLOG_API_ROUTE(blogId) 10 | const response: NextResponseType = await fetch(url, { next: { revalidate: BLOGPAGE_REVALIDATION } }).then(res => res.json()) 11 | 12 | return response.data as string | null 13 | } 14 | 15 | export default async function BlogPage({ blogId }: { blogId: string }) { 16 | const blogArticle = await getBlogArticle({ blogId: blogId }) 17 | 18 | if (blogArticle === null) 19 | notFound() 20 | 21 | return ( 22 | <> 23 | <BlogArticle tag={blogId} blogArticle={blogArticle} /> 24 | </> 25 | ) 26 | } -------------------------------------------------------------------------------- /2023/ed.line/educator-site/app/templates/src/home/pages/_base_course.html: -------------------------------------------------------------------------------- 1 | 2 | <form action="{% url 'add-course' %}" method="post" enctype="multipart/form-data"> 3 | {% csrf_token %} 4 | <div class="profileImage"> 5 | title <input type="text" name="course_title" id="course_title"> 6 | </div> 7 | <div class="profileImage"> 8 | thumbnail <input type="file" name="course_thumbnail" id="course_thumbnail"> 9 | </div> 10 | <div class="profileImage"> 11 | difficulty 12 | <select name="course_level" id="course_level"> 13 | <option value="beginner">beginner</option> 14 | <option value="beginner">intermediate</option> 15 | <option value="beginner">expert</option> 16 | </select> 17 | </div> 18 | <div class="profileImage"> 19 | description <input type="text" name="course_desc" id="course_description"> 20 | </div> 21 | <div class="profileImage"> 22 | prerequisites <input type="text" name="course_prerequisites" id="course_prerequisites"> 23 | </div> 24 | 25 | <button type="submit">Add Course</button> 26 | </form> -------------------------------------------------------------------------------- /2023/ed.line/learner-site/app/static/svg/landing/ca.svg: -------------------------------------------------------------------------------- 1 | <svg width="96" height="97" viewBox="0 0 96 97" fill="none" xmlns="http://www.w3.org/2000/svg"> 2 | <rect x="26.4004" y="20.1976" width="43.2" height="60" stroke="#3C4852" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/> 3 | <rect x="33.6006" y="27.3976" width="28.8" height="12" rx="2" fill="#08BD80"/> 4 | <circle cx="38.4" cy="46.5976" r="2.4" fill="#3C4852"/> 5 | <ellipse cx="47.9996" cy="46.5976" rx="2.4" ry="2.4" fill="#3C4852"/> 6 | <circle cx="57.6002" cy="46.5976" r="2.4" fill="#3C4852"/> 7 | <ellipse cx="38.4" cy="53.7976" rx="2.4" ry="2.4" fill="#3C4852"/> 8 | <circle cx="47.9996" cy="53.7976" r="2.4" fill="#3C4852"/> 9 | <ellipse cx="57.6002" cy="53.7976" rx="2.4" ry="2.4" fill="#3C4852"/> 10 | <ellipse cx="38.4" cy="60.9975" rx="2.4" ry="2.4" fill="#3C4852"/> 11 | <ellipse cx="47.9996" cy="60.9975" rx="2.4" ry="2.4" fill="#3C4852"/> 12 | <ellipse cx="57.6002" cy="60.9975" rx="2.4" ry="2.4" fill="#3C4852"/> 13 | <rect x="36" y="68.1976" width="7.2" height="4.8" rx="2" fill="#3C4852"/> 14 | <rect x="45.6006" y="68.1976" width="7.2" height="4.8" rx="2" fill="#3C4852"/> 15 | </svg> 16 | -------------------------------------------------------------------------------- /2024/chronicle/src/components/(frontend)/(blog)/Favorite/Favorite.tsx: -------------------------------------------------------------------------------- 1 | 'use client' 2 | import { ClassNameType } from "@/common/types/types" 3 | import { StarIcon } from "lucide-react" 4 | import { useState } from "react" 5 | import { DEFAULT_FAVORITE_ENABLED_STATE, FAVORITE_FILLED_SHADE } from "./utils/constants" 6 | 7 | export default function Favorite({ className, isSelected, onSelect, svgDimensions }: { className: ClassNameType, isSelected: boolean, onSelect: () => void, svgDimensions?: number }) { 8 | const [filledStar, setFilledStar] = useState<boolean>(isSelected || DEFAULT_FAVORITE_ENABLED_STATE) 9 | 10 | const handleToggle = () => { 11 | onSelect() 12 | setFilledStar(prev => !prev) 13 | } 14 | 15 | return ( 16 | <span onClick={handleToggle} className={`p-2 cursor-pointer transition-all duration-300 ${className}`}> 17 | <StarIcon width={svgDimensions || 18} height={svgDimensions || 18} name="favorite" stroke={filledStar ? FAVORITE_FILLED_SHADE : "currentColor"} fill={filledStar ? FAVORITE_FILLED_SHADE : "transparent"} className="transition-all duration-300" /> 18 | </span> 19 | ) 20 | } -------------------------------------------------------------------------------- /2023/uptime/utils/shell_output.py: -------------------------------------------------------------------------------- 1 | from datetime import datetime 2 | 3 | def current_time(): 4 | TIME_FORMAT = "%d %b, %H:%M" 5 | 6 | present_time = datetime.now() 7 | formatted_time = present_time.strftime(TIME_FORMAT) 8 | 9 | return formatted_time 10 | 11 | 12 | 13 | class Color: 14 | RED = '\033[91m' 15 | GREEN = '\033[92m' 16 | YELLOW = '\033[93m' 17 | BLUE = '\033[94m' 18 | END = '\033[0m' 19 | 20 | 21 | # ==================================================================== 22 | # ==================================================================== 23 | 24 | 25 | def shell_output(data): 26 | if data["title"] == "file added": 27 | print(f'{Color.YELLOW}[{current_time()}]{Color.END} {Color.GREEN}{data["title"]}:{Color.END} {data["msg"]}') 28 | 29 | if data["title"] == "file moved": 30 | print(f'{Color.YELLOW}[{current_time()}]{Color.END} {Color.BLUE}{data["title"]}:{Color.END} {data["msg"]}') 31 | 32 | if data["title"] == "file deleted": 33 | print(f'{Color.YELLOW}[{current_time()}]{Color.END} {Color.RED}{data["title"]}:{Color.END} {data["msg"]}') 34 | 35 | -------------------------------------------------------------------------------- /2024/chronicle/src/components/(frontend)/(atomic)/Avatar/Avatar.tsx: -------------------------------------------------------------------------------- 1 | 'use client' 2 | import Image from "next/image" 3 | import { AvatarType } from "./utils/types" 4 | 5 | export default function Avatar({ readerName, img, dimensions, shade }: AvatarType) { 6 | const theme = shade === 'emerald' ? 'from-emerald-600/50 to-emerald-950/50' 7 | : shade === 'fuchsia' ? 'from-fuchsia-600/50 to-fuchsia-950/50' 8 | : shade === 'orange' ? 'from-orange-600/50 to-orange-950/50' 9 | : shade === 'sky' ? 'from-sky-600/50 to-sky-950/50' 10 | : 'from-yellow-600/50 to-yellow-950/50' 11 | 12 | return ( 13 | <span className={`relative aspect-square rounded-full overflow-hidden bg-gradient-to-br ${theme} text-sm flex items-center justify-center ${dimensions || "w-9 h-9"}`}> 14 | { 15 | img && img.url ? <Image src={img.url} alt={img.alt} width={200} height={200} unoptimized priority decoding="async" draggable={false} className="object-cover w-full h-full" /> 16 | : `${readerName[0].toUpperCase()}` 17 | } 18 | </span> 19 | ) 20 | } -------------------------------------------------------------------------------- /2024/chronicle/src/common/types/types.ts: -------------------------------------------------------------------------------- 1 | 2 | export type ClassNameType = string 3 | 4 | 5 | export type ThemeType = 'light' | 'dark' 6 | export type SocialLinkType = { label: string | JSX.Element, link:string } 7 | export type CategoryLinkType = { label: string, link:string } 8 | export type SVGType = { width?: number | string, height?: number | string, fill?:string, name?: string, stroke?:string, className?:string } 9 | 10 | 11 | export type SSGBlogStaticParamType = Array<{ blogId: string }> 12 | 13 | 14 | 15 | export type NextResponseType = { status: boolean, data: any | null, count?: number } 16 | 17 | 18 | 19 | export type AvatarShadeType = 'orange' | 'emerald' | 'sky' | 'fuchsia' | 'yellow' 20 | 21 | 22 | 23 | 24 | export type LinkListType = { 25 | top: { label: string, svg: JSX.Element, link: string }[], 26 | bottom: { label: string, svg: JSX.Element, link: string }[] 27 | } -------------------------------------------------------------------------------- /2024/chronicle/src/components/(frontend)/(blog)/Comment/Comment.tsx: -------------------------------------------------------------------------------- 1 | 'use client' 2 | import Avatar from "../../(atomic)/Avatar/Avatar" 3 | import CommentBubble from "../../(atomic)/CommentBubble/CommentBubble" 4 | import { CommentBubbleType } from "../../(atomic)/CommentBubble/utils/types" 5 | import { DEFAULT_PLACEHOLDER } from "./utils/constants" 6 | import { CommentType } from "./utils/types" 7 | 8 | export default function Comment(props: CommentType) { 9 | const { newComment, comment, reader: { id: readerId, name: readerName, pfp: readerPfp } } = props 10 | 11 | const config: CommentBubbleType = 12 | newComment ? { textareaDisabled: false, textareaValue: comment, handleInputChange: props.onEdit, placeholder: props.placeholder || DEFAULT_PLACEHOLDER } 13 | : { textareaDisabled: true, commentString: comment } 14 | 15 | return ( 16 | <section className="grid grid-cols-[40px_auto] sm:grid-cols-[45px_auto] gap-4"> 17 | <Avatar readerName="Kushal" shade="emerald" img={{ url: "https://github.com/bcd-kushal.png", alt: "" }} dimensions={"w-[40px] h-[40px] sm:w-[45px] sm:h-[45px]"} /> 18 | <CommentBubble config={config} /> 19 | </section> 20 | ) 21 | } -------------------------------------------------------------------------------- /2024/chronicle/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "stardust", 3 | "version": "0.1.0", 4 | "private": true, 5 | "scripts": { 6 | "dev": "next dev", 7 | "build": "next build", 8 | "start": "next start", 9 | "lint": "next lint" 10 | }, 11 | "dependencies": { 12 | "@radix-ui/react-dialog": "^1.0.5", 13 | "@radix-ui/react-dropdown-menu": "^2.1.1", 14 | "@radix-ui/react-icons": "^1.3.0", 15 | "@radix-ui/react-popover": "^1.0.7", 16 | "@supabase/supabase-js": "^2.44.0", 17 | "class-variance-authority": "^0.7.0", 18 | "clsx": "^2.1.1", 19 | "cmdk": "^1.0.0", 20 | "dotenv": "^16.4.5", 21 | "lucide-react": "^0.394.0", 22 | "moment": "^2.30.1", 23 | "next": "14.2.4", 24 | "react": "^18", 25 | "react-dom": "^18", 26 | "tailwind-merge": "^2.3.0", 27 | "tailwindcss-animate": "^1.0.7", 28 | "uuid": "^10.0.0", 29 | "vaul": "^0.9.1" 30 | }, 31 | "devDependencies": { 32 | "@types/node": "^20", 33 | "@types/react": "^18", 34 | "@types/react-dom": "^18", 35 | "@types/uuid": "^10.0.0", 36 | "eslint": "^8", 37 | "eslint-config-next": "14.2.4", 38 | "postcss": "^8", 39 | "tailwindcss": "^3.4.1", 40 | "typescript": "^5" 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /2024/chronicle/src/common/types/documents/documents.ts: -------------------------------------------------------------------------------- 1 | export type BlogAtomicDataDocument = { title: string, thumbnail: ImageDocument, id: string, createdAt: Date } 2 | export type BlogCardDataDocument = BlogAtomicDataDocument & { description: string, metrics: BlogMetricsType, tag: TagDocument } 3 | export type BlogCommentsDocument = { count: number, data: CommentDocument[] } 4 | export type BlogFullDataDocument = BlogCardDataDocument & { fullArticle: string, relatedBlogs: BlogAtomicDataDocument[] } 5 | export type BlogMetricsType = { comments: number, likes: number, views: number, id?: string } 6 | export type CommentDocument = { id: string, comment: string, likes: number, replies: CommentDocument[], reader: ReaderAtomicDataDocument, createdAt: Date } 7 | export type ImageDocument = { alt: string, url: string | undefined, id?: string } 8 | export type ReaderAtomicDataDocument = { id: string, pfp?: ImageDocument, name: string } 9 | export type ReaderFullDataDocument = ReaderProfileDataDocument & { password: string } & ({ email?: string, mobile: string } | { email: string, mobile?: string }) 10 | export type ReaderProfileDataDocument = ReaderAtomicDataDocument & { comments: number, likes: number } 11 | export type TagDocument = { label: string, id?: string } -------------------------------------------------------------------------------- /2024/chronicle/src/components/(frontend)/(reader)/ReaderNavigation/ReaderMobileNavigation.tsx: -------------------------------------------------------------------------------- 1 | 'use client' 2 | import { usePathname } from "next/navigation" 3 | import { settingsLinks } from "./static/constants" 4 | import Link from "next/link" 5 | 6 | 7 | export default function ReaderMobileNavigations() { 8 | const currPath = usePathname() 9 | return ( 10 | <section className="flex sticky bottom-0 w-screen items-center justify-evenly sm:hidden pt-1 pb-0.5 px-3 border-t-[1px] dark:border-white/10 h-fit"> 11 | {settingsLinks.top.map(({ label, svg, link }, index) => ( 12 | <Link href={link} key={index} className={`flex flex-col justify-center p-2 text-xs gap-1 items-center w-20 ${currPath.toLowerCase() === link.toLowerCase() ? "dark:text-blue-600" : "dark:text-white/80"}`}> {svg} <span>{label}</span> </Link> 13 | ))} 14 | {settingsLinks.bottom.map(({ label, svg, link }, index) => ( 15 | <Link href={link} key={index} className={`flex flex-col justify-center p-2 text-xs gap-1 items-center w-20 ${currPath.toLowerCase() === link.toLowerCase() ? "dark:text-blue-600" : "dark:text-white/80"}`}> {svg} <span>{label}</span> </Link> 16 | ))} 17 | </section> 18 | ) 19 | } -------------------------------------------------------------------------------- /2023/geoverify/keys.py: -------------------------------------------------------------------------------- 1 | KEYS = { 2 | "FROM": [ 3 | "CITIES", 4 | "COUNTRIES", 5 | "REGIONS", 6 | "STATES", 7 | "SUBREGIONS" 8 | ], 9 | "CITIES": [ 10 | "id", 11 | "name", 12 | "state_id", 13 | "state_code", 14 | "state_name", 15 | "country_id", 16 | "country_code", 17 | "country_name", 18 | "latitude", 19 | "longitude" 20 | ], 21 | "COUNTRIES": [ 22 | "id", 23 | "name", 24 | "iso3", 25 | "iso2", 26 | "numeric_code", 27 | "phone_code", 28 | "capital", 29 | "currency", 30 | "currency_name", 31 | "region", 32 | "subregion", 33 | "nationality", 34 | "latitude", 35 | "longitude", 36 | ], 37 | "REGIONS": [ 38 | "id", 39 | "name", 40 | ], 41 | "STATES": [ 42 | "id", 43 | "name", 44 | "country_id", 45 | "country_code", 46 | "country_name", 47 | "state_code", 48 | "latitude", 49 | "longitude" 50 | ], 51 | "SUBREGIONS": [ 52 | "id", 53 | "name", 54 | "region_id", 55 | ], 56 | } -------------------------------------------------------------------------------- /2024/webstats/README.md: -------------------------------------------------------------------------------- 1 | # Webstats 2 | 3 | <img style="height:23px" src="https://github.com/marwin1991/profile-technology-icons/assets/136815194/5f8c622c-c217-4649-b0a9-7e0ee24bd704"/>   4 | <img style="height:24px" src="https://user-images.githubusercontent.com/25181517/183890598-19a0ac2d-e88a-4005-a8df-1ee36782fde1.png"/>   5 | <img style="height:24px" title="tailwind" src="https://user-images.githubusercontent.com/25181517/202896760-337261ed-ee92-4979-84c4-d4b829c7355d.png"/>   6 | <img style="height:24px" src="https://i.imgur.com/h56M3eS.png" title="source: imgur.com" />   7 | <img style="height:25px" src="https://user-images.githubusercontent.com/25181517/117207330-263ba280-adf4-11eb-9b97-0ac5b40bc3be.png"/>   8 | 9 | https://stats.kushalkumarsaha.com/ 10 | 11 | Webstats showcases user traffic data to any specific website. It uses JS API endpoints and does not read senstitive user data. 12 | 13 | <hr> 14 | 15 | ## ⚖️ License 16 | 17 | This project is licensed under the MIT License - see the <a href=''>LICENSE</a> file for details. 18 | 19 | <hr> 20 | 21 | <h3><img title="Kushal-Kumar" width="18" src="https://raw.githubusercontent.com/bcd-kushal/bcd-kushal/main/assets/icons/dark/filled/kushalkumar_bg_dark.png"/> Kushal Kumar 2024 • All rights reserved </h3> 22 | -------------------------------------------------------------------------------- /2023/candies/php_files/Q1b.php: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <style> 4 | *{ 5 | font-family: 'Segoe UI'; 6 | } 7 | 8 | ::-webkit-scrollbar{ 9 | display: none; 10 | } 11 | 12 | body{ 13 | display: flex; 14 | justify-content: center; 15 | align-items: center; 16 | min-height: 100vh; 17 | background: linear-gradient(45deg,#67aeff,#53003e); 18 | } 19 | .container{ 20 | position: absolute; 21 | bottom: 0; 22 | left: 0; 23 | width: 100%; 24 | height: 100%; 25 | display: flex; 26 | justify-content: center; 27 | align-items: center; 28 | color:white; 29 | font-size:300%; 30 | font-weight:bolder; 31 | } 32 | </style> 33 | </head> 34 | <body> 35 | <div class="container"> 36 | <?php 37 | $val = $_GET["one_b"]; 38 | $prod = 1; 39 | for($i=1;$i<=$val;$i++){ 40 | $prod*=$i; 41 | } 42 | echo "<br>Product = 1*2*3*...".$val." terms = ".$prod."<br>"; 43 | ?> 44 | </div> 45 | 46 | </body> 47 | </html> -------------------------------------------------------------------------------- /2024/chronicle/src/app/api/theme/route.ts: -------------------------------------------------------------------------------- 1 | import { NextRequest, NextResponse } from "next/server" 2 | import { COOKIE_THEME_KEY } from "@/common/constants/cookieKeys" 3 | import { ThemeType } from "@/common/types/types" 4 | import { cookies } from "next/headers" 5 | 6 | const DEFAULT_COOKIE_KEY = COOKIE_THEME_KEY 7 | const DEFAULT_COOKIE_VALUE: ThemeType = 'light' 8 | 9 | export const GET = async (): Promise<NextResponse> => { 10 | try { 11 | if (cookies().has(DEFAULT_COOKIE_KEY)) 12 | return NextResponse.json({ status: true, data: cookies().get(DEFAULT_COOKIE_KEY)?.value as ThemeType }, { status: 200 }) 13 | return NextResponse.json({ status: true, data: DEFAULT_COOKIE_VALUE }, { status: 200 }) 14 | } 15 | catch (err: any) { 16 | return NextResponse.json({ status: false, data: null }, { status: 500 }) 17 | } 18 | } 19 | 20 | 21 | export const POST = async (req: NextRequest): Promise<NextResponse> => { 22 | try { 23 | const theme: ThemeType = await req.json() 24 | cookies().set(DEFAULT_COOKIE_KEY, theme) 25 | return NextResponse.json({ status: true, data: null }, { status: 200 }) 26 | } 27 | catch (err: any) { 28 | return NextResponse.json({ status: false, data: null }, { status: 500 }) 29 | } 30 | } -------------------------------------------------------------------------------- /2023/candies/php_files/Q1c.php: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <style> 4 | *{ 5 | font-family: 'Segoe UI'; 6 | } 7 | 8 | ::-webkit-scrollbar{ 9 | display: none; 10 | } 11 | 12 | body{ 13 | display: flex; 14 | justify-content: center; 15 | align-items: center; 16 | min-height: 100vh; 17 | background: linear-gradient(45deg,#f2ff3d,#530000); 18 | } 19 | .container{ 20 | position: absolute; 21 | bottom: 0; 22 | left: 0; 23 | width: 100%; 24 | height: 100%; 25 | display: flex; 26 | justify-content: center; 27 | align-items: center; 28 | color:white; 29 | font-size:300%; 30 | font-weight:bolder; 31 | } 32 | </style> 33 | </head> 34 | <body> 35 | <div class="container"> 36 | <?php 37 | $val = $_GET["one_c"]; 38 | $sum = 0; 39 | for($i=1;$i<=$val;$i++){ 40 | $sum = $sum + pow(-1,$i+1)*$i; 41 | } 42 | echo "<br>Product = 1-2+3-4+...".$val." terms = ".$sum."<br>"; 43 | ?> 44 | </div> 45 | 46 | </body> 47 | </html> -------------------------------------------------------------------------------- /2023/candies/php_files/Q3.php: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <style> 4 | *{ 5 | font-family: 'Segoe UI'; 6 | } 7 | 8 | ::-webkit-scrollbar{ 9 | display: none; 10 | } 11 | 12 | body{ 13 | display: flex; 14 | justify-content: center; 15 | align-items: center; 16 | min-height: 100vh; 17 | background: linear-gradient(45deg,#ffad9e,#530000); 18 | } 19 | .container{ 20 | position: absolute; 21 | bottom: 0; 22 | left: 0; 23 | width: 100%; 24 | height: 100%; 25 | display: flex; 26 | justify-content: center; 27 | align-items: center; 28 | color:white; 29 | font-size:300%; 30 | font-weight:bolder; 31 | } 32 | </style> 33 | </head> 34 | <body> 35 | <div class="container"> 36 | <?php 37 | $val = $_GET["three"]; 38 | $sum = 0; 39 | $c = $val; 40 | while($c>0){ 41 | $sum+=($c%10); 42 | $c/=10; 43 | } 44 | echo "<br>Sum of digits for ".$val." = ".$sum."<br>"; 45 | ?> 46 | </div> 47 | 48 | </body> 49 | </html> -------------------------------------------------------------------------------- /2024/chronicle/src/components/(frontend)/FeaturedBlogs/FeaturedBlogs.tsx: -------------------------------------------------------------------------------- 1 | import { inThousands } from "@/common/utils/inThousands" 2 | import { EyeIcon, ThumbsUpIcon } from "lucide-react" 3 | import Image from "next/image" 4 | import Link from "next/link" 5 | import { FeaturedBlogsComponentType } from "./utils/types" 6 | import { FEATURED_BLOGS_ROW_SPANS } from "./utils/constants" 7 | import moment from "moment" 8 | import { DATE_FORMAT } from "@/common/constants/dateFormats" 9 | import { generateBlogLink } from "@/common/links/generateLinks" 10 | import BlogCard from "../(blog)/BlogCard/BlogCard" 11 | 12 | export default function FeaturedBlogs({ featuredBlogs }: FeaturedBlogsComponentType) { 13 | return ( 14 | <section className="mt-2 mb-8 sm:my-8 grid grid-cols-1 sm:grid-cols-2 grid-rows-[208px_208px_208px] sm:grid-rows-[110px_110px_110px_110px_110px_110px_110px] md:grid-rows-[65px_65px_65px_65px_65px_65px_65px] md:grid-cols-3 gap-3 sm:gap-4 md:gap-5"> 15 | {featuredBlogs 16 | .filter((_, index) => index < 5) 17 | .map((blog, index) => ( 18 | <BlogCard key={index} blog={blog} className={FEATURED_BLOGS_ROW_SPANS[index] + (index === 3 || index === 4 ? ' hidden sm:grid' : ' grid')} /> 19 | ))} 20 | </section> 21 | ) 22 | } -------------------------------------------------------------------------------- /2024/covilla-blogs/app/templates/src/utils/header.html: -------------------------------------------------------------------------------- 1 | 2 | <div id="main-nav" class=" transparent-header solid-header" style="padding: 0; box-shadow: none;border-bottom: .2px solid #88888850;"> 3 | <div class="menu-bg-wrapper"> 4 | <div class="menu-bg"></div> 5 | <div class="menu-arrow"></div> 6 | </div> 7 | <div class="row-container"> 8 | <a id="logo" href="/" style="letter-spacing: 1.5px;font-weight: 990;"> 9 | MyBlogs 10 | </a> 11 | <nav> 12 | <ul class="menu"> 13 | <li class="menu-wrapper"> 14 | <a class="menu-item" href="/recents/">Recents</a> 15 | </li> 16 | <li class="menu-wrapper"> 17 | <a class="menu-item" href="/categories/">Categories</a> 18 | </li> 19 | </ul> 20 | <div class="pricing-button-wrapper"> 21 | <a id="pricing-button" class="button primary-button accent-teal" 22 | href="/subscribe/"><span style="color: teal;">Subscribe</span></a> 23 | </div> 24 | </nav> 25 | <span class="hamburger"> 26 | <span></span> 27 | <span></span> 28 | <span></span> 29 | </span> 30 | </div> 31 | </div> 32 | -------------------------------------------------------------------------------- /2023/ed.line/educator-site/app/forms.py: -------------------------------------------------------------------------------- 1 | from django import forms 2 | from django.core.validators import FileExtensionValidator 3 | 4 | class LoginForm(forms.Form): 5 | username = forms.CharField( 6 | max_length=100 7 | ) 8 | password = forms.CharField( 9 | widget=forms.PasswordInput() 10 | ) 11 | 12 | 13 | 14 | 15 | class SignupForm(forms.Form): 16 | user = forms.CharField(max_length=100) # mobile number: PK 17 | fname = forms.CharField(max_length=100) 18 | # lname = forms.CharField(max_length=100) 19 | email = forms.CharField( 20 | max_length=100, 21 | widget=forms.EmailInput() 22 | ) 23 | pass1 = forms.CharField( 24 | widget=forms.PasswordInput() 25 | ) 26 | 27 | 28 | 29 | 30 | 31 | class ProfilePicForm(forms.Form): 32 | picture = forms.FileField(validators=[FileExtensionValidator(['jpg','jpeg','png','webp','svg'])]) 33 | 34 | 35 | 36 | 37 | 38 | 39 | class CourseOverviewForm(forms.Form): 40 | thumbnail = forms.FileField(validators=[FileExtensionValidator(['jpg','jpeg','png','webp','svg'])]) 41 | title = forms.CharField(max_length=100) 42 | -------------------------------------------------------------------------------- /2023/ed.line/educator-site/app/static/scss/others/privacy.scss: -------------------------------------------------------------------------------- 1 | $color_1: var(--footer-text0-light); 2 | $color_2: aliceblue; 3 | 4 | .privacyTermsContainer { 5 | width: 100%; 6 | max-width: 1200px; 7 | padding: 20px; 8 | display: flex; 9 | align-items: flex-start; 10 | justify-content: space-between; 11 | align-self: center; 12 | padding-bottom: 80px; 13 | } 14 | .LSOPTC { 15 | width: 250px; 16 | padding: 20px 10px 0 0; 17 | display: flex; 18 | flex-direction: column; 19 | justify-content: flex-start; 20 | align-items: stretch; 21 | a { 22 | outline: none; 23 | border: none; 24 | text-decoration: none; 25 | color: $color_1; 26 | padding: 7px 0; 27 | } 28 | } 29 | .RSOPTC { 30 | width: calc(100% - 250px); 31 | padding: 20px 30px 0 10px; 32 | display: flex; 33 | flex-direction: column; 34 | } 35 | h1 { 36 | font-size: 2.3rem; 37 | } 38 | .RSOPTCDesc { 39 | font-size: 1.1rem; 40 | text-align: justify; 41 | } 42 | h2 { 43 | padding: 12px 20px; 44 | border-radius: 10px; 45 | background: var(--blue); 46 | color: $color_2; 47 | } 48 | @media (max-width: 900px) { 49 | .LSOPTC { 50 | display: none; 51 | } 52 | .RSOPTC { 53 | width: 100%; 54 | } 55 | } 56 | @media (max-width: 700px) { 57 | .RSOPTC { 58 | padding: 0 15px; 59 | } 60 | h1 { 61 | margin-top: 50px; 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /2023/ed.line/educator-site/app/static/scss/others/terms.scss: -------------------------------------------------------------------------------- 1 | $color_1: var(--footer-text0-light); 2 | $color_2: aliceblue; 3 | 4 | .privacyTermsContainer { 5 | width: 100%; 6 | max-width: 1200px; 7 | padding: 20px; 8 | display: flex; 9 | align-items: flex-start; 10 | justify-content: space-between; 11 | align-self: center; 12 | padding-bottom: 80px; 13 | } 14 | .LSOPTC { 15 | width: 250px; 16 | padding: 20px 10px 0 0; 17 | display: flex; 18 | flex-direction: column; 19 | justify-content: flex-start; 20 | align-items: stretch; 21 | a { 22 | outline: none; 23 | border: none; 24 | text-decoration: none; 25 | color: $color_1; 26 | padding: 7px 0; 27 | } 28 | } 29 | .RSOPTC { 30 | width: calc(100% - 250px); 31 | padding: 20px 30px 0 10px; 32 | display: flex; 33 | flex-direction: column; 34 | } 35 | h1 { 36 | font-size: 2.3rem; 37 | } 38 | .RSOPTCDesc { 39 | font-size: 1.1rem; 40 | text-align: justify; 41 | } 42 | h2 { 43 | padding: 12px 20px; 44 | border-radius: 10px; 45 | background: var(--orange); 46 | color: $color_2; 47 | } 48 | @media (max-width: 900px) { 49 | .LSOPTC { 50 | display: none; 51 | } 52 | .RSOPTC { 53 | width: 100%; 54 | } 55 | } 56 | @media (max-width: 700px) { 57 | .RSOPTC { 58 | padding: 0 15px; 59 | } 60 | h1 { 61 | margin-top: 50px; 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /2023/uptime/utils/clean_url.py: -------------------------------------------------------------------------------- 1 | from .check_os import check_os_type 2 | 3 | def clean_url(unclean_url:str = ""): 4 | 5 | # The base example to such a type would be somthing like: 6 | # C:\Users\Kushal/Downloads/abc\compete-banner-bg-shade.svg 7 | 8 | # goal: - make all backslashes into front-slashes 9 | # - add single quotes wherever files/folders have spaces in between them 10 | 11 | 12 | 13 | if unclean_url == "" or unclean_url == None: 14 | return { "err": "malformed_url" } 15 | 16 | 17 | # file seperator check and OS compatibility -------------- 18 | file_seperator = "\\" #default file seperator 19 | 20 | os_type = check_os_type() 21 | 22 | if os_type == "windows": 23 | file_seperator = file_seperator 24 | elif os_type == "linux" or os_type == "macOS": 25 | file_seperator = "/" 26 | else: 27 | return { "err": "unknown OS type" } 28 | 29 | 30 | 31 | 32 | # convert all file seperators into such types -------------------- 33 | clean_url = "" 34 | 35 | for i in range(0,len(unclean_url)): 36 | if unclean_url[i] == '/' or ord(unclean_url[i]) == 92: 37 | clean_url += file_seperator 38 | else: 39 | clean_url += unclean_url[i] 40 | 41 | 42 | return clean_url 43 | -------------------------------------------------------------------------------- /2024/gittify/utils/clean_url.py: -------------------------------------------------------------------------------- 1 | from .check_os import check_os_type 2 | 3 | def clean_url(unclean_url:str = ""): 4 | 5 | # The base example to such a type would be somthing like: 6 | # C:\Users\Kushal/Downloads/abc\compete-banner-bg-shade.svg 7 | 8 | # goal: - make all backslashes into front-slashes 9 | # - add single quotes wherever files/folders have spaces in between them 10 | 11 | 12 | 13 | if unclean_url == "" or unclean_url == None: 14 | return { "err": "malformed_url" } 15 | 16 | 17 | # file seperator check and OS compatibility -------------- 18 | file_seperator = "\\" #default file seperator 19 | 20 | os_type = check_os_type() 21 | 22 | if os_type == "windows": 23 | file_seperator = file_seperator 24 | elif os_type == "linux" or os_type == "macOS": 25 | file_seperator = "/" 26 | else: 27 | return { "err": "unknown OS type" } 28 | 29 | 30 | 31 | 32 | # convert all file seperators into such types -------------------- 33 | clean_url = "" 34 | 35 | for i in range(0,len(unclean_url)): 36 | if unclean_url[i] == '/' or ord(unclean_url[i]) == 92: 37 | clean_url += file_seperator 38 | else: 39 | clean_url += unclean_url[i] 40 | 41 | 42 | return clean_url 43 | -------------------------------------------------------------------------------- /2024/webstats/src/utils/mergeSort.ts: -------------------------------------------------------------------------------- 1 | 'use server' 2 | 3 | 4 | export async function mergeSortDescendingWithLimit(obj:object, limit:number) { 5 | const entries = Object.entries(obj) 6 | 7 | function merge(left:any, right:any) { 8 | let result = [] 9 | let leftIndex = 0 10 | let rightIndex = 0 11 | 12 | while (leftIndex < left.length && rightIndex < right.length) { 13 | if (left[leftIndex][1] > right[rightIndex][1]) { 14 | result.push(left[leftIndex]); 15 | leftIndex++ 16 | } else { 17 | result.push(right[rightIndex]) 18 | rightIndex++ 19 | } 20 | } 21 | 22 | return result.concat(left.slice(leftIndex)).concat(right.slice(rightIndex)) 23 | } 24 | 25 | function mergeSortRec(arr:any[]):any { 26 | if (arr.length <= 1) 27 | return arr 28 | const mid = Math.floor(arr.length / 2) 29 | const left = arr.slice(0, mid) 30 | const right = arr.slice(mid) 31 | 32 | return merge( mergeSortRec(left), mergeSortRec(right) ) 33 | } 34 | 35 | const sortedEntries = mergeSortRec(entries) 36 | const truncatedEntries = sortedEntries.slice(0, limit) 37 | const sortedObject = Object.fromEntries(truncatedEntries) 38 | return sortedObject 39 | } -------------------------------------------------------------------------------- /2023/candies/php_files/Q1a.php: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <style> 4 | *{ 5 | font-family: 'Segoe UI'; 6 | } 7 | 8 | ::-webkit-scrollbar{ 9 | display: none; 10 | } 11 | 12 | body{ 13 | display: flex; 14 | justify-content: center; 15 | align-items: center; 16 | min-height: 100vh; 17 | background: linear-gradient(45deg,#3dff7b,#000f53); 18 | } 19 | .container{ 20 | position: absolute; 21 | bottom: 0; 22 | left: 0; 23 | width: 100%; 24 | height: 100%; 25 | display: flex; 26 | justify-content: center; 27 | align-items: center; 28 | color:white; 29 | font-size:300%; 30 | font-weight:bolder; 31 | } 32 | </style> 33 | </head> 34 | <body> 35 | <div class="container"> 36 | <?php 37 | $val = $_GET["one_a"]; 38 | $sum = 0; 39 | for($i=1;$i<=$val;$i++){ 40 | $sub_sum = 0; 41 | for($j=1;$j<=$i;$j++) 42 | $sub_sum+=$j; 43 | $sum+=$sub_sum; 44 | } 45 | echo "<br>Sum = 1+(1+2)+(1+2+3)+...".$val." terms = ".$sum."<br>"; 46 | ?> 47 | 48 | </div> 49 | 50 | </body> 51 | </html> -------------------------------------------------------------------------------- /2023/ed.line/educator-site/app/templates/src/home/pages/home.html: -------------------------------------------------------------------------------- 1 | <div class="dashboard_home"> 2 | 3 | {% if homepage == 'home' %} 4 | {% include 'src/home/pages/dash_home.html' %} 5 | 6 | {% elif homepage == 'analytics' %} 7 | {% include 'src/home/pages/analytics.html' %} 8 | 9 | {% elif homepage == 'add-course' %} 10 | {% include 'src/home/pages/addCourse/overview.html' %} 11 | 12 | {% elif homepage == 'course-details' %} 13 | {% include 'src/home/pages/addCourse/courseDetails.html' %} 14 | 15 | {% elif homepage == 'courses' %} 16 | {% include 'src/home/pages/my_courses.html' %} 17 | 18 | {% elif homepage == 'profile' %} 19 | {% include 'src/home/pages/educator/profile.html' %} 20 | 21 | {% elif homepage == 'settings' %} 22 | {% include 'src/home/pages/educator/settings.html' %} 23 | 24 | {% elif homepage == 'error' %} 25 | {% include 'src/error/error_page.html' %} 26 | 27 | {% elif homepage == 'name-edit' or homepage == 'number-edit' or homepage == 'email-edit' %} 28 | {% include 'src/home/pages/update_user/user_edit.html' %} 29 | 30 | {% elif homepage == 'pfp-update' %} 31 | {% include 'src/home/pages/update_user/pfp.html' %} 32 | 33 | 34 | {% else %} 35 | 36 | NOTHING MORE IN IF-IF 37 | 38 | {% endif %} 39 | 40 | </div> -------------------------------------------------------------------------------- /2023/geoverify/README.md: -------------------------------------------------------------------------------- 1 | # GeoVerify 2 | 3 | <img style="width:24px" title="python3" src="https://user-images.githubusercontent.com/25181517/183423507-c056a6f9-1ba8-4312-a350-19bcbc5a8697.png"/>   4 | <img style="width:24px" title="flask" src="https://github.com/bcd-kushal/Kushal-Kumar/assets/96081625/20a11017-9e2b-45f2-ae6e-d8d38e0058b0"/>   5 | <img style="height:26px" title="railway" src="https://railway.app/brand/logo-light.png"/>   6 | 7 | https://geoverify.kushalkumarsaha.com/ 8 | 9 | `GeoVerify` is a free API to fetch geolocation data or verify if a city/region/country does actually exist 10 | 11 | ## ✨ Usage 12 | 13 | ```bash 14 | geoverify = "https://geoverify.kushalkumarsaha.com/help/" 15 | // call api 16 | ``` 17 | 18 | ### Find city, region 19 | 20 | ```bash 21 | geoverify = "https://geoverify.kushalkumarsaha.com/cities/" 22 | // query params: name = springfield 23 | ``` 24 | 25 | ## 🤝 Contribution 26 | 27 | This project is open to contribution, if interested then mail me at <a href="mailto:dev@kushalkumarsaha.com">dev@kushalkumarsaha.com</a> 28 | 29 | <hr> 30 | 31 | ## ⚖️ License 32 | 33 | This project is licensed under the MIT License - see the <a href=''>LICENSE</a> file for details. 34 | 35 | <hr> 36 | 37 | <h3><img title="Kushal-Kumar" width="18" src="https://raw.githubusercontent.com/bcd-kushal/bcd-kushal/main/assets/icons/dark/filled/kushalkumar_bg_dark.png"/> Kushal Kumar 2024 • All rights reserved </h3> 38 | -------------------------------------------------------------------------------- /2024/chronicle/src/components/(frontend)/(atomic)/Copy/Copy.tsx: -------------------------------------------------------------------------------- 1 | 'use client' 2 | import { ClassNameType } from "@/common/types/types" 3 | import { CheckIcon, CopyIcon, LoaderCircleIcon } from "lucide-react" 4 | import { useEffect, useState } from "react" 5 | 6 | export default function Copy({ stringToCopy, className }: { stringToCopy: string, className?: ClassNameType }) { 7 | const [isCopied, setIsCopied] = useState<boolean>(false) 8 | 9 | const handleClipboardCopy = () => { 10 | try { 11 | navigator.clipboard.writeText(stringToCopy) 12 | } finally { 13 | setIsCopied(prev => true) 14 | } 15 | } 16 | 17 | useEffect(() => { 18 | if (isCopied) { 19 | const timeout = setTimeout(() => setIsCopied(prev => false), 1500) 20 | return () => clearTimeout(timeout) 21 | } 22 | }, [isCopied]) 23 | 24 | return ( 25 | <div onClick={!isCopied ? handleClipboardCopy : () => { }} className={`transition-all duration-300 rounded-md flex items-center justify-center p-[11px] ${isCopied ? "hover:bg-transparent dark:hover:bg-transparent" : "cursor-pointer hover:bg-black/10 dark:hover:bg-white/10"} ${className || ""} `}> 26 | { 27 | isCopied ? <CheckIcon width={18} height={18} stroke="#00aa00" /> 28 | : <CopyIcon width={18} height={18} /> 29 | } 30 | </div> 31 | ) 32 | } -------------------------------------------------------------------------------- /2023/ed.line/learner-site/app/static/js/login.js: -------------------------------------------------------------------------------- 1 | 2 | const MOBILE_FIELD_VALUE_FROM_BACKEND_FOR_LOGIN = "{{ given_mobile }}"; 3 | document.getElementById("{{ LF.username.id_for_label }}").value = MOBILE_FIELD_VALUE_FROM_BACKEND_FOR_LOGIN; 4 | let LOGIN_ALLOWED = true; 5 | 6 | 7 | document.getElementById("{{LF.username.id_for_label}}").addEventListener("keyup",()=>{ 8 | function validateMobile(mobile){ 9 | if(mobile.length!=10) 10 | return false; 11 | 12 | const regex = /^(?!0+$)\d+$/; 13 | return regex.test(mobile); 14 | } 15 | 16 | const ERR_X = document.getElementsByClassName("errMsgMobile")[0]; 17 | 18 | if(validateMobile(document.getElementById("{{LF.username.id_for_label}}").value)){ 19 | ERR_X.textContent = ""; 20 | LOGIN_ALLOWED &= true; 21 | } else { 22 | ERR_X.style.color = "red"; 23 | ERR_X.textContent = "Malformed mobile number"; 24 | LOGIN_ALLOWED = false; 25 | } 26 | }); 27 | 28 | 29 | 30 | function isSignAllowed(){ 31 | const ERR_MOB = document.getElementsByClassName("errMsgMobile")[0]; 32 | 33 | if(LOGIN_ALLOWED){ 34 | ERR_MOB.textContent = ""; 35 | LOGIN_ALLOWED = true; 36 | } else { 37 | ERR_MOB.style.color = "red"; 38 | ERR_MOB.textContent = "Invalid mobile number"; 39 | LOGIN_ALLOWED = false; 40 | } 41 | return (LOGIN_ALLOWED)? true : false; 42 | } 43 | -------------------------------------------------------------------------------- /2024/chronicle/src/components/ui/popover.tsx: -------------------------------------------------------------------------------- 1 | "use client" 2 | 3 | import * as React from "react" 4 | import * as PopoverPrimitive from "@radix-ui/react-popover" 5 | 6 | import { cn } from "@/lib/utils" 7 | 8 | const Popover = PopoverPrimitive.Root 9 | 10 | const PopoverTrigger = PopoverPrimitive.Trigger 11 | 12 | const PopoverAnchor = PopoverPrimitive.Anchor 13 | 14 | const PopoverContent = React.forwardRef< 15 | React.ElementRef<typeof PopoverPrimitive.Content>, 16 | React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content> 17 | >(({ className, align = "center", sideOffset = 4, ...props }, ref) => ( 18 | <PopoverPrimitive.Portal> 19 | <PopoverPrimitive.Content 20 | ref={ref} 21 | align={align} 22 | sideOffset={sideOffset} 23 | className={cn( 24 | "z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2", 25 | className 26 | )} 27 | {...props} 28 | /> 29 | </PopoverPrimitive.Portal> 30 | )) 31 | PopoverContent.displayName = PopoverPrimitive.Content.displayName 32 | 33 | export { Popover, PopoverTrigger, PopoverContent, PopoverAnchor } 34 | -------------------------------------------------------------------------------- /2024/chronicle/src/components/(frontend)/RecentlyRead/RecentlyRead.tsx: -------------------------------------------------------------------------------- 1 | import { RecentlyReadDataType } from "./utils/types" 2 | import BlogMiniCard from "../(blog)/BlogMiniCard/BlogMiniCard" 3 | 4 | export default function RecentlyRead({ data }: { data: RecentlyReadDataType }) { 5 | return ( 6 | <span className="grid *:row-start-1 *:col-start-1"> 7 | {/* desktop ----------------------- */} 8 | <section className="mt-2 mb-8 hidden sm:grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 gap-3 sm:gap-4 md:gap-5 sm:grid-rows-[120px_120px] md:grid-rows-[120px]"> 9 | {data 10 | .filter((_, index) => index < 3) 11 | .map((blog, index) => ( 12 | <BlogMiniCard title={blog.title} createdAt={blog.createdAt} thumbnail={blog.thumbnail} key={index} /> 13 | ))} 14 | </section> 15 | 16 | {/* mobile screens ---------------- */} 17 | <section className="mt-2 mb-8 grid sm:hidden grid-cols-1 sm:grid-cols-2 md:grid-cols-3 gap-3 sm:gap-4 md:gap-5 grid-rows-[120px_120px]"> 18 | {data 19 | .filter((_, index) => index < 2) 20 | .map((blog, index) => ( 21 | <BlogMiniCard title={blog.title} createdAt={blog.createdAt} thumbnail={blog.thumbnail} key={index} /> 22 | ))} 23 | </section> 24 | </span> 25 | ) 26 | } -------------------------------------------------------------------------------- /2024/covilla-blogs/README.md: -------------------------------------------------------------------------------- 1 | # Covilla: Blogs application 2 | 3 | <img style="height:26px;" src="https://github.com/marwin1991/profile-technology-icons/assets/62091613/9bf5650b-e534-4eae-8a26-8379d076f3b4" />   4 | <img style="height:24px" src="https://user-images.githubusercontent.com/25181517/117447155-6a868a00-af3d-11eb-9cfe-245df15c9f3f.png"/>   5 | <img style="height:24px" src="https://github.com/bcd-kushal/Kushal-Kumar/assets/96081625/c95ea671-8b33-41c9-a269-adf4d172f9cf"/>   6 | <img style="height:25px" src="https://user-images.githubusercontent.com/25181517/182884894-d3fa6ee0-f2b4-4960-9961-64740f533f2a.png"/>   7 | <img style="height:25px;" src="https://user-images.githubusercontent.com/25181517/182884177-d48a8579-2cd0-447a-b9a6-ffc7cb02560e.png"/>   8 | <img style="height:25px" src="https://user-images.githubusercontent.com/25181517/117207330-263ba280-adf4-11eb-9b97-0ac5b40bc3be.png"/>   9 | 10 | `Covilla` is a blogging website to host your blogs and manage them 11 | 12 | - comes with commenting and admin features 13 | - used as my primary personal blogging site 14 | 15 | <hr> 16 | 17 | ## ⚖️ License 18 | 19 | This project is licensed under the MIT License - see the <a href=''>LICENSE</a> file for details. 20 | 21 | <hr> 22 | 23 | <h3><img title="Kushal-Kumar" width="18" src="https://raw.githubusercontent.com/bcd-kushal/bcd-kushal/main/assets/icons/dark/filled/kushalkumar_bg_dark.png"/> Kushal Kumar 2024 • All rights reserved </h3> 24 | 25 | -------------------------------------------------------------------------------- /2023/candies/php_files/Q4.php: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <style> 4 | *{ 5 | font-family: 'Segoe UI'; 6 | } 7 | 8 | ::-webkit-scrollbar{ 9 | display: none; 10 | } 11 | 12 | body{ 13 | display: flex; 14 | justify-content: center; 15 | align-items: center; 16 | min-height: 100vh; 17 | background: linear-gradient(45deg,#3dff7b,#000f53); 18 | } 19 | .container{ 20 | position: absolute; 21 | bottom: 0; 22 | left: 0; 23 | width: 100%; 24 | height: 100%; 25 | display: flex; 26 | justify-content: center; 27 | align-items: center; 28 | color:white; 29 | font-size:300%; 30 | font-weight:bolder; 31 | } 32 | </style> 33 | </head> 34 | <body> 35 | <div class="container"> 36 | <?php 37 | $x = $_GET["four_a"]; 38 | $y = $_GET["four_b"]; 39 | $copy_x = $x; 40 | $copy_y = $y; 41 | 42 | while ($x!=$y) { 43 | if ($x>$y) 44 | $x=$x-$y; 45 | else 46 | $y=$y-$x; 47 | } 48 | 49 | echo "HCF of $copy_x and $copy_y is: $x <br>"; 50 | $lcm = ($copy_x*$copy_y)/$x; 51 | echo "LCM of $copy_x and $copy_y is: $lcm"; 52 | ?> 53 | </div> 54 | 55 | </body> 56 | </html> -------------------------------------------------------------------------------- /2024/chronicle/src/components/(frontend)/(blog)/Share/Share.tsx: -------------------------------------------------------------------------------- 1 | import { ClassNameType } from "@/common/types/types" 2 | import { Popover, PopoverContent, PopoverTrigger } from "@/components/ui/popover" 3 | import { Share2Icon } from "lucide-react" 4 | import Copy from "../../(atomic)/Copy/Copy" 5 | import { DOMAIN } from "@/common/constants/domain" 6 | 7 | export default function Share({ className, blogName, svgDimensions }: { className: ClassNameType, blogName: string, svgDimensions?: number }) { 8 | const SHARABLE_LINK = `${DOMAIN}/${blogName}` 9 | return ( 10 | <Popover> 11 | <PopoverTrigger className={`p-2 cursor-pointer flex items-center justify-center ${className}`}> 12 | <Share2Icon width={svgDimensions || 18} height={svgDimensions || 18} name="share" /> 13 | </PopoverTrigger> 14 | <PopoverContent className="flex flex-col items-stretch gap-1 justify-start p-3 pt-2.5 min-w-fit rounded-xl dark:border-white/30" collisionPadding={12}> 15 | <div className="flex items-center justify-between gap-2"> 16 | <span className="font-medium text-lg">Click to copy</span> 17 | <Copy stringToCopy={SHARABLE_LINK} /> 18 | </div> 19 | <input type="text" defaultValue={SHARABLE_LINK} disabled name="blog-link" aria-label="blog-link" className="border-none p-3 rounded-lg bg-zinc-500/15" /> 20 | </PopoverContent> 21 | </Popover> 22 | ) 23 | } -------------------------------------------------------------------------------- /2024/chronicle/src/components/(frontend)/Header/Header.tsx: -------------------------------------------------------------------------------- 1 | import Link from "next/link" 2 | import Search from "./components/Search/Search" 3 | import { ThemeType } from "@/common/types/types" 4 | import Avatar from "../(atomic)/Avatar/Avatar" 5 | import { __emptyFunction__ } from "@/common/utils/__emptyFunction__" 6 | import ReaderCard from "../(reader)/ReaderCard/ReaderCard" 7 | 8 | 9 | export default async function Header({ theme }: { theme: ThemeType }) { 10 | return ( 11 | <div className="py-1.5 sm:py-2 z-50 backdrop-blur-md sticky top-0 border-b-[1px] border-black/20 dark:border-white/20"> 12 | <header className="max-w-[1200px] relative left-1/2 -translate-x-1/2 px-[12px] min-[1200px]:px-0 flex items-center justify-between"> 13 | 14 | {/* left side -------------------------- */} 15 | <span className="flex gap-1 items-center"> 16 | <Link href={"/"} className="text-base font-medium py-2 mr-4">Blogs by Shubham</Link> 17 | </span> 18 | 19 | {/* right side -------------------------- */} 20 | <span className="flex items-center gap-3 sm:gap-4 justify-end"> 21 | <Search /> 22 | <ReaderCard> 23 | <Avatar readerName="Kushal" dimensions="w-8 h-8 sm:w-[33.2px] sm:h-[33.2px]" shade="yellow" /> 24 | </ReaderCard> 25 | </span> 26 | 27 | </header> 28 | </div> 29 | ) 30 | } -------------------------------------------------------------------------------- /2023/ed.line/learner-site/app/static/svg/landing/ssc.svg: -------------------------------------------------------------------------------- 1 | <svg width="96" height="96" viewBox="0 0 96 96" fill="none" xmlns="http://www.w3.org/2000/svg"> 2 | <rect x="18" y="14" width="60" height="76" rx="6" stroke="#3C4852" stroke-width="3" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/> 3 | <rect x="32" y="10" width="32" height="8" rx="4" fill="white" stroke="#3C4852" stroke-width="3" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/> 4 | <path d="M42 9C42 9.55228 42.4477 10 43 10H53C53.5523 10 54 9.55228 54 9V9C54 7.34315 52.6569 6 51 6H45C43.3431 6 42 7.34315 42 9V9Z" stroke="#3C4852" stroke-width="3" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/> 5 | <path d="M44 32H70" stroke="#3C4852" stroke-width="3" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/> 6 | <path d="M44 40.0002H54" stroke="#3C4852" stroke-width="3" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/> 7 | <path d="M44 56H70" stroke="#3C4852" stroke-width="3" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/> 8 | <path d="M44 64.0002H70" stroke="#3C4852" stroke-width="3" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/> 9 | <path d="M26 37L29 40L36 32" stroke="#08BD80" stroke-width="3" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/> 10 | <rect x="26" y="54" width="10" height="10" stroke="#08BD80" stroke-width="3" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/> 11 | </svg> 12 | -------------------------------------------------------------------------------- /2023/ed.line/educator-site/app/templates/src/others/history.html: -------------------------------------------------------------------------------- 1 | <div class="historyContainer"> 2 | 3 | <div class="LSHC"> 4 | <div class="tt"> 5 | <img src="https://static.uacdn.net/production/_next/static/images/about/quote.png?q=75&auto=format%2Ccompress&w=256" alt=""> 6 | </div> 7 | <div class="historyDesc">FROM HUMBLE BEGINNINGS</div> 8 | <div class="historyTitle">Our journey so far</div> 9 | </div> 10 | 11 | <div class="RSHC"> 12 | {% for x in history %} 13 | <div class="historyBox"> 14 | <div class="boxLS"></div> 15 | <div class="boxRS"> 16 | <div class="historyYear">{{x.year}}</div> 17 | <div class="historyDoing"> 18 | {{x.desc}} 19 | </div> 20 | </div> 21 | <div class="historyIcon"> 22 | <img src="{{x.icon}}" alt=""> 23 | </div> 24 | </div> 25 | {% endfor %} 26 | 27 | 28 | <div class="historyBox"> 29 | <div class="boxRS"> 30 | <div class="historyDoing" style="padding: 14px 20px; border-radius: 10px; color: aliceblue; font-weight: 990; background: var(--purple); width: fit-content;"> 31 | And still creating history!! 32 | </div> 33 | </div> 34 | </div> 35 | 36 | </div> 37 | 38 | </div> -------------------------------------------------------------------------------- /2023/candies/php_files/Q9.php: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <style> 4 | *{ 5 | font-family: 'Segoe UI'; 6 | } 7 | 8 | ::-webkit-scrollbar{ 9 | display: none; 10 | } 11 | 12 | body{ 13 | display: flex; 14 | justify-content: center; 15 | align-items: center; 16 | min-height: 100vh; 17 | background: linear-gradient(45deg,#ffad9e,#530000); 18 | } 19 | .container{ 20 | position: absolute; 21 | bottom: 0; 22 | left: 0; 23 | width: 100%; 24 | height: 100%; 25 | display: flex; 26 | justify-content: center; 27 | align-items: center; 28 | color:white; 29 | font-size:300%; 30 | font-weight:bolder; 31 | } 32 | </style> 33 | </head> 34 | <body> 35 | <div class="container"> 36 | <?php 37 | $val = $_GET["nine"]; 38 | error_reporting(E_ERROR | E_PARSE); 39 | echo"Decimal number = $val<br>"; 40 | echo"Binary number = "; 41 | 42 | $bin = array(); 43 | $i = 0; 44 | while ($val > 0) { 45 | $bin[$i] = $val % 2; 46 | $val = intval($val / 2); 47 | $i++; 48 | } 49 | for ($j = $i - 1; $j >= 0; $j--) 50 | echo $bin[$j]; 51 | 52 | for($j=$i; $j>=0; $j--) 53 | echo $arr[$j]; 54 | ?> 55 | </div> 56 | 57 | </body> 58 | </html> -------------------------------------------------------------------------------- /2024/webstats/src/components/siteList/SiteList.tsx: -------------------------------------------------------------------------------- 1 | 'use server' 2 | import "./SiteList.css" 3 | import Link from "next/link" 4 | import { SITES_LIST } from "@/data/sitesOnPreview" 5 | import { ChevronRightSvg } from "@/svgs/svgs" 6 | 7 | export async function SiteList() { 8 | return ( 9 | <aside className="main group/list scrollbar-hide flex md:flex-col md:w-[220px] gap-2 items-center md:items-stretch justify-start overflow-x-scroll w-[calc(100dvw_-_32px)] md:overflow-x-auto md:overflow-y-scroll *:px-4 *:py-3 *:font-semibold *:rounded-lg *:flex *:w-full *:items-center *:justify-between *:duration-200 *:cursor-pointer *:tracking-wide"> 10 | {SITES_LIST.map((site,index) => ( 11 | <Link href={`/${site.name.toLowerCase()}`} className="group/asideTag site-tab hover:bg-[#6f6f6f35] min-w-[150px] transition-all duration-300" key={index}> 12 | <span className=" flex flex-col items-start justify-center transition-all duration-300 w-full md:text-left md:w-fit"> 13 | <span className="group-hover/asideTag:text-[#f09393] transition-all duration-200 whitespace-nowrap site-name relative left-1/2 -translate-x-1/2 md:left-0 md:translate-x-0">{site.name}</span> 14 | </span> 15 | <span className="transition-all hidden md:block -translate-x-2 opacity-0 group-hover/asideTag:opacity-100 group-hover/asideTag:translate-x-0 "><ChevronRightSvg/></span> 16 | </Link> 17 | ))} 18 | </aside> 19 | ) 20 | } -------------------------------------------------------------------------------- /2024/covilla-blogs/site_admin/templates/src/admin_utils/header.html: -------------------------------------------------------------------------------- 1 | 2 | <div id="main-nav" class=" transparent-header solid-header" style="padding: 0; box-shadow: none;border-bottom: .2px solid #88888850; height: 80px;"> 3 | <div class="menu-bg-wrapper"> 4 | <div class="menu-bg"></div> 5 | <div class="menu-arrow"></div> 6 | </div> 7 | <div class="row-container"> 8 | <a id="logo" href="/admin/dashboard/" style="letter-spacing: 1.5px;font-weight: 990;height: 80px;display: flex;align-items: center; width: fit-content;"> 9 | Admin:MyBlogs 10 | </a> 11 | {% if admin %} 12 | <nav> 13 | <ul class="menu"> 14 | <li class="menu-wrapper"> 15 | <a class="menu-item" href="/admin/create/">create</a> 16 | </li> 17 | <li class="menu-wrapper"> 18 | <a class="menu-item" href="/admin/dashboard/">manage</a> 19 | </li> 20 |     21 |     22 |   23 | <li class="menu-wrapper"> 24 | <a class="menu-item logout" href="/admin/logout/" style="color: rgb(246, 130, 128);">logout</a> 25 | </li> 26 | </ul> 27 | </nav> 28 | {% endif %} 29 | <span class="hamburger"> 30 | <span></span> 31 | <span></span> 32 | <span></span> 33 | </span> 34 | </div> 35 | </div> 36 | -------------------------------------------------------------------------------- /2023/candies/php_files/Q5.php: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <style> 4 | *{ 5 | font-family: 'Segoe UI'; 6 | } 7 | 8 | ::-webkit-scrollbar{ 9 | display: none; 10 | } 11 | 12 | body{ 13 | display: flex; 14 | justify-content: center; 15 | align-items: center; 16 | min-height: 100vh; 17 | background: linear-gradient(45deg,#ef3dff,#412107); 18 | } 19 | .container{ 20 | position: absolute; 21 | bottom: 0; 22 | left: 0; 23 | width: 100%; 24 | height: 100%; 25 | display: flex; 26 | justify-content: center; 27 | align-items: center; 28 | color:white; 29 | font-size:300%; 30 | font-weight:bolder; 31 | } 32 | </style> 33 | </head> 34 | <body> 35 | <div class="container"> 36 | <?php 37 | $x = $_GET["five_a"]; 38 | $n = $_GET["five_b"]; 39 | 40 | function eOfX($n,$x) 41 | { 42 | //use taylor series 43 | $sum = 1.0; 44 | for ($i=$n-1;$i>0;--$i){ 45 | $sum=1+$x*$sum/$i; 46 | } 47 | return $sum; 48 | } 49 | $result=eOfX($n,$x); 50 | echo "e^x <br>= 1 + x/1! + x^2/2! + x^3/3! + ......n terms <br>= 1 + (x/1) (1 + (x/2) (1 + (x/3) (....n terms) ) ) ...taylor series <br>"; 51 | echo "<br>So, e^x (x = ".$x.", n = ".$n.") is = $result"; 52 | ?> 53 | </div> 54 | 55 | </body> 56 | </html> -------------------------------------------------------------------------------- /2023/ed.line/educator-site/app/templates/src/others/reviews.html: -------------------------------------------------------------------------------- 1 | <div class="reviewContainer"> 2 | 3 | 4 | 5 | 6 | <div class="LSHC"> 7 | <div class="tt"> 8 | <img src="https://static.uacdn.net/production/_next/static/images/about/quote.png?q=75&auto=format%2Ccompress&w=256" alt=""> 9 | </div> 10 | <div class="historyDesc" style="color: var(--purple);">BUILT UPON TRUST</div> 11 | <div class="historyTitle">Hear from our user reviews</div> 12 | </div> 13 | 14 | <div class="RSHC"> 15 | {% for x in reviews %} 16 | <div class="historyBox"> 17 | <div class="boxLS"></div> 18 | <div class="boxRS"> 19 | <div class="historyYear">{{x.name}}</div> 20 | <div class="historyDoing"> 21 | {{x.info}} 22 | </div> 23 | </div> 24 | <div class="historyIcon"> 25 | {{x.rating}} 26 | </div> 27 | </div> 28 | {% endfor %} 29 | 30 | 31 | <div class="historyBox" style="padding: 0; background: transparent; box-shadow: none;"> 32 | <div class="boxRS" > 33 | <div class="historyDoing" style="padding: 14px 20px; border-radius: 10px; color: aliceblue; font-weight: 990; background: goldenrod; width: fit-content;"> 34 | And plenty more!! 35 | </div> 36 | </div> 37 | </div> 38 | 39 | </div> 40 | 41 | 42 | 43 | </div> -------------------------------------------------------------------------------- /2024/gittify/format.json: -------------------------------------------------------------------------------- 1 | { 2 | "login": "bcd-kushal", 3 | "id": 96081625, 4 | "node_id": "U_kgDOBboW2Q", 5 | "avatar_url": "https://avatars.githubusercontent.com/u/96081625?v=4", 6 | "gravatar_id": "", 7 | "url": "https://api.github.com/users/bcd-kushal", 8 | "html_url": "https://github.com/bcd-kushal", 9 | "followers_url": "https://api.github.com/users/bcd-kushal/followers", 10 | "following_url": "https://api.github.com/users/bcd-kushal/following{/other_user}", 11 | "gists_url": "https://api.github.com/users/bcd-kushal/gists{/gist_id}", 12 | "starred_url": "https://api.github.com/users/bcd-kushal/starred{/owner}{/repo}", 13 | "subscriptions_url": "https://api.github.com/users/bcd-kushal/subscriptions", 14 | "organizations_url": "https://api.github.com/users/bcd-kushal/orgs", 15 | "repos_url": "https://api.github.com/users/bcd-kushal/repos", 16 | "events_url": "https://api.github.com/users/bcd-kushal/events{/privacy}", 17 | "received_events_url": "https://api.github.com/users/bcd-kushal/received_events", 18 | "type": "User", 19 | "site_admin": false, 20 | "name": "Kushal", 21 | "company": "MakeIndias", 22 | "blog": "https://kushalkumar-portfolio.netlify.app/", 23 | "location": "India", 24 | "email": "dev.kushal@icloud.com", 25 | "hireable": null, 26 | "bio": "doing my utmost", 27 | "twitter_username": null, 28 | "public_repos": 30, 29 | "public_gists": 0, 30 | "followers": 6, 31 | "following": 6, 32 | "created_at": "2021-12-13T19:17:41Z", 33 | "updated_at": "2024-01-31T03:01:51Z" 34 | } -------------------------------------------------------------------------------- /2024/chronicle/src/components/(frontend)/AllBlogs/AllBlogs.tsx: -------------------------------------------------------------------------------- 1 | import { AllBlogsType } from "./utils/types" 2 | import BlogGhost from "../(blog)/BlogGhost/BlogGhost" 3 | import LoadMore from "../(atomic)/LoadMore/LoadMore" 4 | import { __emptyFunction__ } from "@/common/utils/__emptyFunction__" 5 | 6 | export default function AllBlogs({ category }: { category: string }) { 7 | const allBlogs: AllBlogsType = [ 8 | { id: "", title: "Understanding React Server Components", createdAt: new Date(), thumbnail: { alt: "", url: "https://github.com/bcd-kushal.png" } }, 9 | { id: "", title: "Understanding React Server Components", createdAt: new Date(), thumbnail: { alt: "", url: "https://github.com/bcd-kushal.png" } }, 10 | { id: "", title: "Understanding React Server Components", createdAt: new Date(), thumbnail: { alt: "", url: "https://github.com/bcd-kushal.png" } }, 11 | { id: "", title: "Understanding React Server Components", createdAt: new Date(), thumbnail: { alt: "", url: "https://github.com/bcd-kushal.png" } }, 12 | { id: "", title: "Understanding React Server Components", createdAt: new Date(), thumbnail: { alt: "", url: "https://github.com/bcd-kushal.png" } }, 13 | ] 14 | 15 | return ( 16 | <> 17 | <section className="mt-2 mb-8 grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-10 sm:gap-8 md:gap-10"> 18 | {allBlogs.map((blog, index) => ( 19 | <BlogGhost blog={blog} page="category" key={index} /> 20 | ))} 21 | </section> 22 | <LoadMore handleClick={__emptyFunction__} /> 23 | </> 24 | ) 25 | } -------------------------------------------------------------------------------- /2023/ed.line/educator-site/app/templates/src/others/careers.html: -------------------------------------------------------------------------------- 1 | <div class="careerContainer"> 2 | 3 | 4 | 5 | 6 | <div class="LSHC"> 7 | <div class="tt"> 8 | <img src="https://static.uacdn.net/production/_next/static/images/about/quote.png?q=75&auto=format%2Ccompress&w=256" alt=""> 9 | </div> 10 | <div class="historyDesc" style="color: var(--red);">WORK WITH ED.LINE</div> 11 | <div class="historyTitle">Open job positions</div> 12 | </div> 13 | 14 | <div class="RSHC"> 15 | {% for x in careers %} 16 | <div class="historyBox"> 17 | <div class="boxLS"></div> 18 | <div class="boxRS"> 19 | <div class="historyYear">{{x.position}}</div> 20 | <div class="historyDoing"> 21 | {{x.location}} 22 | </div> 23 | </div> 24 | <div class="historyIcon"> 25 | {{x.date}} 26 | </div> 27 | </div> 28 | {% endfor %} 29 | 30 | 31 | <div class="historyBox bgdg" style="padding: 0; background: transparent; box-shadow: none;"> 32 | <div class="boxRS" > 33 | <div class="historyDoing" style="padding: 14px 20px; border-radius: 10px; color: aliceblue; font-weight: 990; background: var(--red); width: fit-content;"> 34 | Click here to notify for new openings 35 | </div> 36 | </div> 37 | </div> 38 | 39 | </div> 40 | 41 | 42 | 43 | </div> 44 | 45 | -------------------------------------------------------------------------------- /2023/ed.line/educator-site/app/educator_courses.py: -------------------------------------------------------------------------------- 1 | import json 2 | from django.core.cache import cache 3 | from .models import * 4 | 5 | def read_educator_courses(educator_name): 6 | DATA,TEMP = [],{} 7 | overviews = CourseOverview.objects.filter(username=educator_name) 8 | 9 | # iterate over all overviews if they exist 10 | if overviews: 11 | print(overviews,"...",len(overviews)) 12 | for overview in overviews: 13 | 14 | # TEMP stores entire course... 15 | TEMP = {} 16 | TEMP["course_name"] = overview.course_title 17 | TEMP["course_desc"] = overview.course_description 18 | TEMP["data"] = [] 19 | OVERVIEW_INSTANCE = overview.course_id 20 | 21 | print({"course_name":overview.course_title,"course_desc":overview.course_description}) 22 | 23 | # get the corresponding Headers 24 | headers = HeaderTitles.objects.filter(overview_id=OVERVIEW_INSTANCE) 25 | for header in headers: 26 | HEADER_INSTANCE = header.header_id 27 | videoTitles = VideoTitles.objects.filter(header_id=HEADER_INSTANCE) 28 | VIDEOS = [] 29 | for videoTitle in videoTitles: 30 | VIDEOS.append({ "title": videoTitle.vid_title, "length": videoTitle.vid_length }) 31 | 32 | TEMP["data"].append({ 33 | "title": header.header, 34 | "desc": header.header_desc, 35 | "videos": VIDEOS 36 | }) 37 | 38 | DATA.append(TEMP) 39 | 40 | return DATA -------------------------------------------------------------------------------- /2023/candies/php_files/Q8.php: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <style> 4 | *{ 5 | font-family: 'Segoe UI'; 6 | } 7 | 8 | ::-webkit-scrollbar{ 9 | display: none; 10 | } 11 | 12 | body{ 13 | display: flex; 14 | justify-content: center; 15 | align-items: center; 16 | min-height: 100vh; 17 | background: linear-gradient(45deg,#9c9c9c,#030303); 18 | } 19 | .container{ 20 | position: absolute; 21 | bottom: 0; 22 | left: 0; 23 | width: 100%; 24 | height: 100%; 25 | display: flex; 26 | justify-content: center; 27 | align-items: center; 28 | color:white; 29 | font-size:300%; 30 | font-weight:bolder; 31 | } 32 | </style> 33 | </head> 34 | <body> 35 | <div class="container"> 36 | <?php 37 | $val = $_GET["eight"]; 38 | 39 | ////////////////////////////// 40 | $c=0; 41 | function hanoi($n,$from='A',$to='B',$temp='C') 42 | { 43 | global $c; 44 | if ($n==1) 45 | { 46 | $c+=1; 47 | echo "<br>{$c} : Insert disk 1 from: tower {$from} to: tower {$to}"; 48 | return; 49 | } 50 | hanoi($n-1, $from, $temp, $to); 51 | $c+=1; 52 | echo "<br>{$c} : Insert disk {$n} from: tower {$from} to: tower {$to}"; 53 | hanoi($n-1, $temp, $to, $from); 54 | } 55 | hanoi($val); 56 | ?> 57 | </div> 58 | 59 | </body> 60 | </html> 61 | 62 | 63 | -------------------------------------------------------------------------------- /2023/ed.line/educator-site/app/templates/src/home/pages/update_user/pfp.html: -------------------------------------------------------------------------------- 1 | <div class="rsGroup" style="display: flex;align-items: center;justify-content: center;font-weight: 990;font-size: 2rem;padding-bottom: 50px;padding-top:150px;letter-spacing: 2.7px;"> 2 | {{first_name}}'S PROFILE PIC UPDATE 3 | </div> 4 | 5 | 6 | 7 | <div class="rsGroup"> 8 | <div class="rsGrpTitle">Profile Update</div> 9 | <div class="rsGrpSubTitle"></div> 10 | <div class="rsBox"> 11 | 12 | 13 | <form action="{% url 'profile-pic-update' %}" method="post" enctype="multipart/form-data"> 14 | {% csrf_token %} 15 | <div class="rsSubBox" style="border: none;"> 16 | <div class="rsLSide">Upload Picture<br> 17 | <div class="abcd" style="padding: 15px 0;"> 18 | <input type="file" name="{{picform.picture.name}}" id="{{picform.picture.id_for_label}}" value="{{picform.picture.value | default:''}}"></div> 19 | </div> 20 | <div class="rsRSide" style="display: flex;flex-direction: row;gap: 15px;"> 21 | <button type="submit" style="border: 1.3px solid rgba(86, 86, 86, 0.55); color: var(--green); background: transparent;">Add Profile Image</button> 22 | <div class="updateStatus" style="display: flex;align-items: center;padding: px 10px;font-weight: 990;opacity: .55;color: var(--green);"> 23 | {% if update_status %} 24 | Profile picture updated! 25 | {% endif %} 26 | </div> 27 | </div> 28 | </div> 29 | </form> 30 | </div> 31 | </div> 32 | 33 | 34 | 35 | 36 | 37 | --------------------------------------------------------------------------------