From 1e10d11db35b8f598451ebdbfc6db8d1616480ab Mon Sep 17 00:00:00 2001 From: "amkayondo01@gmail.com" Date: Wed, 15 May 2024 01:27:34 +0300 Subject: [PATCH 01/52] Refactor: Migrate application to Turbo Repo, add TypeScript and Shadcn-UI support, remove unused files and configurations. Fix: Correct main domain redirect to 2023. issue: #129 --- .editorconfig | 10 + .eslintrc.js | 10 + .eslintrc.json | 3 - .gitignore | 43 +- .npmrc | 2 + LICENSE | 21 + README.md | 126 +- app/2023/django-girls/page.jsx | 132 - app/2023/financial-aid/page.jsx | 93 - app/2023/health-and-safety/page.jsx | 116 - app/2023/layout.js | 38 - app/2023/page.js | 5 - app/2023/privacy-policy/page.jsx | 30 - app/2023/travel-guide/page.jsx | 71 - app/2024/django-girls/page.jsx | 132 - app/2024/health-and-safety/page.jsx | 116 - app/2024/layout.js | 38 - app/2024/page.js | 36 - app/2024/privacy-policy/page.jsx | 30 - app/2024/travel-guide/page.jsx | 71 - app/api/hello/route.js | 3 - app/blog/page.jsx | 48 - app/favicon.png | Bin 34143 -> 0 bytes app/globals.css | 3 - app/layout.js | 12 - apps/2023/.eslintrc.js | 9 + apps/2023/README.md | 28 + .../2023/app/attendee/[slug]/page.tsx | 0 .../2023/app/code-of-conduct/page.tsx | 41 +- .../2023/app/contact/page.tsx | 5 +- apps/2023/app/django-girls/page.tsx | 204 + apps/2023/app/financial-aid/page.tsx | 178 + apps/2023/app/health-and-safety/page.tsx | 179 + .../[keynote-speaker]/page.tsx | 12 +- .../2023/app/keynote-speakers/page.tsx | 10 +- apps/2023/app/layout.tsx | 55 + apps/2023/app/page.tsx | 5 + apps/2023/app/privacy-policy/page.tsx | 42 + .../2023/app/schedule/page.tsx | 5 +- .../page.jsx => apps/2023/app/shop/page.tsx | 16 +- .../2023/app/speakers/[speaker]/page.tsx | 8 +- .../2023/app/speakers/page.tsx | 7 +- .../2023/app/sponsors/page.tsx | 2 +- apps/2023/app/travel-guide/page.tsx | 112 + apps/2023/next-env.d.ts | 5 + apps/2023/next.config.js | 4 + apps/2023/package.json | 31 + apps/2023/postcss.config.js | 1 + .../assets/docs/Call_For_Proposals.pdf | Bin .../2023/public}/assets/images/avatar.png | Bin .../2023/public}/assets/images/closed.png | Bin .../public}/assets/images/date-21-icon.png | Bin .../assets/images/djangogirls/Anne_Namuli.png | Bin .../assets/images/djangogirls/dg1.jpeg | Bin .../public}/assets/images/djangogirls/dg1.png | Bin .../public}/assets/images/djangogirls/dg2.png | Bin .../public}/assets/images/djangogirls/dg3.jpg | Bin .../public}/assets/images/djangogirls/dg3.png | Bin .../assets/images/djangogirls/dj2.jpeg | Bin .../assets/images/djangogirls/djangogirls.png | Bin .../assets/images/djangogirls/dorothy.png | Bin .../public}/assets/images/djangogirls/eva.png | Bin .../2023/public/assets/images}/favicon.ico | Bin .../2023/public}/assets/images/img1.jpg | Bin .../2023/public}/assets/images/img2.jpg | Bin .../2023/public}/assets/images/img3.jpg | Bin .../2023/public}/assets/images/img4.jpg | Bin .../2023/public}/assets/images/img5.jpg | Bin .../2023/public}/assets/images/img6.jpg | Bin .../2023/public}/assets/images/img7.jpg | Bin .../images/keynote-speakers/anthony-shaw.jpeg | Bin .../images/keynote-speakers/kojo-idrissa.jpeg | Bin .../images/keynote-speakers/monica-oyugi.jpg | Bin .../images/keynote-speakers/ss-musoke.jpg | Bin .../2023/public}/assets/images/logo.png | Bin .../public}/assets/images/pyconug-pallet.webp | Bin .../images/speakers/abigail-afi-gbadago.jpg | Bin .../images/speakers/adewale-olaniyan.png | Bin .../speakers/adewale-olaniyan.png.fdmdownload | Bin .../assets/images/speakers/allan-kiche.jpg | Bin .../assets/images/speakers/atieno-ouma.jpg | Bin .../images/speakers/brayan-kai-mwanyumba.jpg | Bin .../images/speakers/emmanuel-okiria.jpg | Bin .../assets/images/speakers/gift-ojeabulu.jpeg | Bin .../images/speakers/hellen-namulinda.jpg | Bin .../speakers/kirabo-kakopo-atuhurira.jpeg | Bin .../assets/images/speakers/mwangi-kabiru.jpg | Bin .../images/speakers/olayinka-atobiloye.jpeg | Bin .../assets/images/speakers/wesley-kambale.jpg | Bin .../assets/images/sponsors/psf-logo.png | Bin .../assets/images/sponsors/tiv-dark-logo.png | Bin .../assets/images/sponsors/tiv-logo.png | Bin .../public}/assets/images/swag/hoodie.jpg | Bin {public => apps/2023/public}/next.svg | 0 {public => apps/2023/public}/thirteen.svg | 0 {public => apps/2023/public}/vercel.svg | 0 apps/2023/tailwind.config.ts | 1 + apps/2023/tsconfig.json | 20 + .../2023/utils/constants.ts | 0 apps/2024/.eslintrc.js | 9 + apps/2024/README.md | 28 + .../2024/app/attendee/[slug]/page.tsx | 0 .../2024/app/code-of-conduct/page.tsx | 41 +- .../2024/app/contact/page.tsx | 5 +- apps/2024/app/django-girls/page.tsx | 204 + .../2024/app/financial-aid/page.tsx | 1 - apps/2024/app/health-and-safety/page.tsx | 179 + .../[keynote-speaker]/page.tsx | 15 +- .../2024/app/keynote-speakers/page.tsx | 10 +- apps/2024/app/layout.tsx | 56 + apps/2024/app/page.tsx | 45 + apps/2024/app/privacy-policy/page.tsx | 42 + .../2024/app/schedule/page.tsx | 5 +- .../page.jsx => apps/2024/app/shop/page.tsx | 16 +- .../2024/app/speakers/[speaker]/page.tsx | 9 +- .../2024/app/speakers/page.tsx | 0 .../2024/app/speakers/speaker-guide.tsx | 2 +- .../2024/app/speakers/speakers.tsx | 8 +- .../2024/app/sponsors/page.tsx | 15 +- .../2024/app/travel-aid/page.tsx | 1 - apps/2024/app/travel-guide/page.tsx | 112 + apps/2024/next-env.d.ts | 5 + apps/2024/next.config.js | 27 + apps/2024/package.json | 32 + apps/2024/postcss.config.js | 1 + {public => apps/2024/public}/2024/2024-1.png | Bin {public => apps/2024/public}/2024/2024.png | Bin .../2024/public}/2024/sponsors/GitHub.png | Bin .../public/assets/docs/Call_For_Proposals.pdf | Bin 0 -> 26384 bytes apps/2024/public/assets/images/avatar.png | Bin 0 -> 1678 bytes apps/2024/public/assets/images/closed.png | Bin 0 -> 10868 bytes .../public/assets/images/date-21-icon.png | Bin 0 -> 2675 bytes .../assets/images/djangogirls/Anne_Namuli.png | Bin 0 -> 128244 bytes .../public/assets/images/djangogirls/dg1.jpeg | Bin 0 -> 1106061 bytes .../public/assets/images/djangogirls/dg1.png | Bin 0 -> 1048858 bytes .../public/assets/images/djangogirls/dg2.png | Bin 0 -> 972213 bytes .../public/assets/images/djangogirls/dg3.jpg | Bin 0 -> 193292 bytes .../public/assets/images/djangogirls/dg3.png | Bin 0 -> 599396 bytes .../public/assets/images/djangogirls/dj2.jpeg | Bin 0 -> 3102616 bytes .../assets/images/djangogirls/djangogirls.png | Bin 0 -> 5101 bytes .../assets/images/djangogirls/dorothy.png | Bin 0 -> 76636 bytes .../public/assets/images/djangogirls/eva.png | Bin 0 -> 54875 bytes .../2024/public}/assets/images/favicon.ico | Bin apps/2024/public/assets/images/img1.jpg | Bin 0 -> 125765 bytes apps/2024/public/assets/images/img2.jpg | Bin 0 -> 230183 bytes apps/2024/public/assets/images/img3.jpg | Bin 0 -> 142089 bytes apps/2024/public/assets/images/img4.jpg | Bin 0 -> 141723 bytes apps/2024/public/assets/images/img5.jpg | Bin 0 -> 143083 bytes apps/2024/public/assets/images/img6.jpg | Bin 0 -> 223661 bytes apps/2024/public/assets/images/img7.jpg | Bin 0 -> 226362 bytes .../images/keynote-speakers/anthony-shaw.jpeg | Bin 0 -> 24844 bytes .../images/keynote-speakers/kojo-idrissa.jpeg | Bin 0 -> 5963 bytes .../images/keynote-speakers/monica-oyugi.jpg | Bin 0 -> 80306 bytes .../images/keynote-speakers/ss-musoke.jpg | Bin 0 -> 287748 bytes apps/2024/public/assets/images/logo.png | Bin 0 -> 19874 bytes .../public/assets/images/pyconug-pallet.webp | Bin 0 -> 16142 bytes .../images/speakers/abigail-afi-gbadago.jpg | Bin 0 -> 412130 bytes .../images/speakers/adewale-olaniyan.png | Bin 0 -> 376779 bytes .../speakers/adewale-olaniyan.png.fdmdownload | Bin 0 -> 376779 bytes .../assets/images/speakers/allan-kiche.jpg | Bin 0 -> 105352 bytes .../assets/images/speakers/atieno-ouma.jpg | Bin 0 -> 27373 bytes .../images/speakers/brayan-kai-mwanyumba.jpg | Bin 0 -> 472783 bytes .../images/speakers/emmanuel-okiria.jpg | Bin 0 -> 165971 bytes .../assets/images/speakers/gift-ojeabulu.jpeg | Bin 0 -> 112087 bytes .../images/speakers/hellen-namulinda.jpg | Bin 0 -> 170038 bytes .../speakers/kirabo-kakopo-atuhurira.jpeg | Bin 0 -> 69273 bytes .../assets/images/speakers/mwangi-kabiru.jpg | Bin 0 -> 653263 bytes .../images/speakers/olayinka-atobiloye.jpeg | Bin 0 -> 44251 bytes .../assets/images/speakers/wesley-kambale.jpg | Bin 0 -> 441130 bytes .../assets/images/sponsors/psf-logo.png | Bin 0 -> 326021 bytes .../assets/images/sponsors/tiv-dark-logo.png | Bin 0 -> 35448 bytes .../assets/images/sponsors/tiv-logo.png | Bin 0 -> 47541 bytes .../2024/public/assets/images/swag/hoodie.jpg | Bin 0 -> 382794 bytes apps/2024/public/next.svg | 1 + apps/2024/public/thirteen.svg | 1 + apps/2024/public/vercel.svg | 1 + apps/2024/tailwind.config.ts | 1 + apps/2024/tsconfig.json | 20 + .../2024/utils/constants.ts | 9 + content/test.md | 14 - jsconfig.json | 8 - next.config.js | 22 - package-lock.json | 9879 ----------------- package.json | 41 +- packages/eslint-config/README.md | 3 + packages/eslint-config/library.js | 34 + packages/eslint-config/next.js | 35 + packages/eslint-config/package.json | 19 + packages/eslint-config/react-internal.js | 43 + packages/typescript-config/base.json | 20 + packages/typescript-config/nextjs.json | 16 + packages/typescript-config/package.json | 9 + packages/typescript-config/react-library.json | 8 + packages/ui/.eslintrc.js | 9 + packages/ui/README.md | 1 + packages/ui/components.json | 17 + packages/ui/package.json | 37 + .../ui/postcss.config.js | 3 +- .../src/components/shared/2023/home/index.tsx | 0 .../shared/2023/home/sections/about.tsx | 4 +- .../shared/2023/home/sections/buy-ticket.tsx | 6 +- .../shared/2023/home/sections/contact.tsx | 6 +- .../shared/2023/home/sections/hero.tsx | 0 .../shared/2023/home/sections/newsletter.tsx | 26 +- .../shared/2023/home/sections/schedule.tsx | 0 .../shared/2023/home/sections/speakers.tsx | 8 +- .../shared/2023/home/sections/sponsors.tsx | 0 .../shared/2023/home/sections/venue.tsx | 0 .../src/components/shared/2023/jumbotron.tsx | 4 +- .../components/shared/2023/layout/footer.tsx | 4 +- .../components/shared/2023/layout/navbar.tsx | 11 +- .../shared/2024/home/about-section.tsx | 11 +- .../src/components/shared/2024/home/hero.tsx | 0 .../components/shared/2024/home/jumbotron.tsx | 3 +- .../components/shared/2024/home/key-notes.tsx | 4 +- .../components/shared/2024/home/sponsors.tsx | 0 .../components/shared/2024/home/tickets.tsx | 6 +- .../src/components/shared/2024/home/venue.tsx | 12 +- .../components/shared/2024/layout/Navbar.tsx | 8 +- .../ui/src/components/shared/Card.tsx | 0 .../ui/src/components/shared/banner.tsx | 0 .../ui/src/components/shared/blog/header.tsx | 0 .../src/components/shared/blog/meta-data.tsx | 2 +- .../ui/src/components/shared/blog/preview.tsx | 0 .../ui/src/components/shared/button.tsx | 4 +- .../ui/src/components/shared/logo.tsx | 5 +- .../src/components/shared}/schedule/data.js | 0 .../shared/schedule/schedule-panel.tsx | 0 .../shared/schedule/schedule-step.tsx | 8 +- .../shared/schedule/schedule-tab.tsx | 0 .../shared/schedule/schedule-tabs.tsx | 0 .../shared/sections/page-section.tsx | 0 .../ui/src/components/shared/shop/data.tsx | 0 .../ui/src/components/shared/shop/step.tsx | 0 .../shared/speakers/keynote-speaker-card.tsx | 4 +- .../shared/speakers/keynote-speakers-data.tsx | 0 .../shared/speakers/speaker-card.tsx | 0 .../shared/speakers/speakers-data.tsx | 0 .../shared/speakers/title-section.tsx | 0 .../src/components/shared/to-be-announced.tsx | 0 packages/ui/src/components/ui/button.tsx | 56 + packages/ui/src/globals.css | 76 + packages/ui/src/lib/utils.ts | 6 + packages/ui/tailwind.config.ts | 83 + packages/ui/tsconfig.json | 11 + pnpm-lock.yaml | 4681 ++++++++ pnpm-workspace.yaml | 3 + tailwind.config.js | 27 - turbo.json | 17 + 249 files changed, 7237 insertions(+), 11147 deletions(-) create mode 100644 .editorconfig create mode 100644 .eslintrc.js delete mode 100644 .eslintrc.json create mode 100644 .npmrc create mode 100644 LICENSE delete mode 100644 app/2023/django-girls/page.jsx delete mode 100644 app/2023/financial-aid/page.jsx delete mode 100644 app/2023/health-and-safety/page.jsx delete mode 100644 app/2023/layout.js delete mode 100644 app/2023/page.js delete mode 100644 app/2023/privacy-policy/page.jsx delete mode 100644 app/2023/travel-guide/page.jsx delete mode 100644 app/2024/django-girls/page.jsx delete mode 100644 app/2024/health-and-safety/page.jsx delete mode 100644 app/2024/layout.js delete mode 100644 app/2024/page.js delete mode 100644 app/2024/privacy-policy/page.jsx delete mode 100644 app/2024/travel-guide/page.jsx delete mode 100644 app/api/hello/route.js delete mode 100644 app/blog/page.jsx delete mode 100644 app/favicon.png delete mode 100644 app/globals.css delete mode 100644 app/layout.js create mode 100644 apps/2023/.eslintrc.js create mode 100644 apps/2023/README.md rename app/2023/attendee/[slug]/page.jsx => apps/2023/app/attendee/[slug]/page.tsx (100%) rename app/2023/code-of-conduct/page.jsx => apps/2023/app/code-of-conduct/page.tsx (92%) rename app/2023/contact/page.jsx => apps/2023/app/contact/page.tsx (97%) create mode 100644 apps/2023/app/django-girls/page.tsx create mode 100644 apps/2023/app/financial-aid/page.tsx create mode 100644 apps/2023/app/health-and-safety/page.tsx rename app/2023/keynote-speakers/[keynote-speaker]/page.jsx => apps/2023/app/keynote-speakers/[keynote-speaker]/page.tsx (79%) rename app/2023/keynote-speakers/page.jsx => apps/2023/app/keynote-speakers/page.tsx (77%) create mode 100644 apps/2023/app/layout.tsx create mode 100644 apps/2023/app/page.tsx create mode 100644 apps/2023/app/privacy-policy/page.tsx rename app/2023/schedule/page.jsx => apps/2023/app/schedule/page.tsx (82%) rename app/2024/shop/page.jsx => apps/2023/app/shop/page.tsx (87%) rename app/2023/speakers/[speaker]/page.jsx => apps/2023/app/speakers/[speaker]/page.tsx (82%) rename app/2023/speakers/page.jsx => apps/2023/app/speakers/page.tsx (82%) rename app/2023/sponsors/page.jsx => apps/2023/app/sponsors/page.tsx (99%) create mode 100644 apps/2023/app/travel-guide/page.tsx create mode 100644 apps/2023/next-env.d.ts create mode 100644 apps/2023/next.config.js create mode 100644 apps/2023/package.json create mode 100644 apps/2023/postcss.config.js rename {public => apps/2023/public}/assets/docs/Call_For_Proposals.pdf (100%) rename {public => apps/2023/public}/assets/images/avatar.png (100%) rename {public => apps/2023/public}/assets/images/closed.png (100%) rename {public => apps/2023/public}/assets/images/date-21-icon.png (100%) rename {public => apps/2023/public}/assets/images/djangogirls/Anne_Namuli.png (100%) rename {public => apps/2023/public}/assets/images/djangogirls/dg1.jpeg (100%) rename {public => apps/2023/public}/assets/images/djangogirls/dg1.png (100%) rename {public => apps/2023/public}/assets/images/djangogirls/dg2.png (100%) rename {public => apps/2023/public}/assets/images/djangogirls/dg3.jpg (100%) rename {public => apps/2023/public}/assets/images/djangogirls/dg3.png (100%) rename {public => apps/2023/public}/assets/images/djangogirls/dj2.jpeg (100%) rename {public => apps/2023/public}/assets/images/djangogirls/djangogirls.png (100%) rename {public => apps/2023/public}/assets/images/djangogirls/dorothy.png (100%) rename {public => apps/2023/public}/assets/images/djangogirls/eva.png (100%) rename {app => apps/2023/public/assets/images}/favicon.ico (100%) rename {public => apps/2023/public}/assets/images/img1.jpg (100%) rename {public => apps/2023/public}/assets/images/img2.jpg (100%) rename {public => apps/2023/public}/assets/images/img3.jpg (100%) rename {public => apps/2023/public}/assets/images/img4.jpg (100%) rename {public => apps/2023/public}/assets/images/img5.jpg (100%) rename {public => apps/2023/public}/assets/images/img6.jpg (100%) rename {public => apps/2023/public}/assets/images/img7.jpg (100%) rename {public => apps/2023/public}/assets/images/keynote-speakers/anthony-shaw.jpeg (100%) rename {public => apps/2023/public}/assets/images/keynote-speakers/kojo-idrissa.jpeg (100%) rename {public => apps/2023/public}/assets/images/keynote-speakers/monica-oyugi.jpg (100%) rename {public => apps/2023/public}/assets/images/keynote-speakers/ss-musoke.jpg (100%) rename {public => apps/2023/public}/assets/images/logo.png (100%) rename {public => apps/2023/public}/assets/images/pyconug-pallet.webp (100%) rename {public => apps/2023/public}/assets/images/speakers/abigail-afi-gbadago.jpg (100%) rename {public => apps/2023/public}/assets/images/speakers/adewale-olaniyan.png (100%) rename {public => apps/2023/public}/assets/images/speakers/adewale-olaniyan.png.fdmdownload (100%) rename {public => apps/2023/public}/assets/images/speakers/allan-kiche.jpg (100%) rename {public => apps/2023/public}/assets/images/speakers/atieno-ouma.jpg (100%) rename {public => apps/2023/public}/assets/images/speakers/brayan-kai-mwanyumba.jpg (100%) rename {public => apps/2023/public}/assets/images/speakers/emmanuel-okiria.jpg (100%) rename {public => apps/2023/public}/assets/images/speakers/gift-ojeabulu.jpeg (100%) rename {public => apps/2023/public}/assets/images/speakers/hellen-namulinda.jpg (100%) rename {public => apps/2023/public}/assets/images/speakers/kirabo-kakopo-atuhurira.jpeg (100%) rename {public => apps/2023/public}/assets/images/speakers/mwangi-kabiru.jpg (100%) rename {public => apps/2023/public}/assets/images/speakers/olayinka-atobiloye.jpeg (100%) rename {public => apps/2023/public}/assets/images/speakers/wesley-kambale.jpg (100%) rename {public => apps/2023/public}/assets/images/sponsors/psf-logo.png (100%) rename {public => apps/2023/public}/assets/images/sponsors/tiv-dark-logo.png (100%) rename {public => apps/2023/public}/assets/images/sponsors/tiv-logo.png (100%) rename {public => apps/2023/public}/assets/images/swag/hoodie.jpg (100%) rename {public => apps/2023/public}/next.svg (100%) rename {public => apps/2023/public}/thirteen.svg (100%) rename {public => apps/2023/public}/vercel.svg (100%) create mode 100644 apps/2023/tailwind.config.ts create mode 100644 apps/2023/tsconfig.json rename 2023/utils/constants.js => apps/2023/utils/constants.ts (100%) create mode 100644 apps/2024/.eslintrc.js create mode 100644 apps/2024/README.md rename app/2024/attendee/[slug]/page.jsx => apps/2024/app/attendee/[slug]/page.tsx (100%) rename app/2024/code-of-conduct/page.jsx => apps/2024/app/code-of-conduct/page.tsx (92%) rename app/2024/contact/page.jsx => apps/2024/app/contact/page.tsx (98%) create mode 100644 apps/2024/app/django-girls/page.tsx rename app/2024/financial-aid/page.jsx => apps/2024/app/financial-aid/page.tsx (99%) create mode 100644 apps/2024/app/health-and-safety/page.tsx rename app/2024/keynote-speakers/[keynote-speaker]/page.jsx => apps/2024/app/keynote-speakers/[keynote-speaker]/page.tsx (71%) rename app/2024/keynote-speakers/page.jsx => apps/2024/app/keynote-speakers/page.tsx (77%) create mode 100644 apps/2024/app/layout.tsx create mode 100644 apps/2024/app/page.tsx create mode 100644 apps/2024/app/privacy-policy/page.tsx rename app/2024/schedule/page.jsx => apps/2024/app/schedule/page.tsx (82%) rename app/2023/shop/page.jsx => apps/2024/app/shop/page.tsx (87%) rename app/2024/speakers/[speaker]/page.jsx => apps/2024/app/speakers/[speaker]/page.tsx (80%) rename app/2024/speakers/page.jsx => apps/2024/app/speakers/page.tsx (100%) rename app/2024/speakers/speaker-guide.jsx => apps/2024/app/speakers/speaker-guide.tsx (99%) rename app/2024/speakers/speakers.jsx => apps/2024/app/speakers/speakers.tsx (86%) rename app/2024/sponsors/page.jsx => apps/2024/app/sponsors/page.tsx (99%) rename app/2024/travel-aid/page.jsx => apps/2024/app/travel-aid/page.tsx (99%) create mode 100644 apps/2024/app/travel-guide/page.tsx create mode 100644 apps/2024/next-env.d.ts create mode 100644 apps/2024/next.config.js create mode 100644 apps/2024/package.json create mode 100644 apps/2024/postcss.config.js rename {public => apps/2024/public}/2024/2024-1.png (100%) rename {public => apps/2024/public}/2024/2024.png (100%) rename {public => apps/2024/public}/2024/sponsors/GitHub.png (100%) create mode 100644 apps/2024/public/assets/docs/Call_For_Proposals.pdf create mode 100644 apps/2024/public/assets/images/avatar.png create mode 100644 apps/2024/public/assets/images/closed.png create mode 100644 apps/2024/public/assets/images/date-21-icon.png create mode 100644 apps/2024/public/assets/images/djangogirls/Anne_Namuli.png create mode 100644 apps/2024/public/assets/images/djangogirls/dg1.jpeg create mode 100644 apps/2024/public/assets/images/djangogirls/dg1.png create mode 100644 apps/2024/public/assets/images/djangogirls/dg2.png create mode 100644 apps/2024/public/assets/images/djangogirls/dg3.jpg create mode 100644 apps/2024/public/assets/images/djangogirls/dg3.png create mode 100644 apps/2024/public/assets/images/djangogirls/dj2.jpeg create mode 100644 apps/2024/public/assets/images/djangogirls/djangogirls.png create mode 100644 apps/2024/public/assets/images/djangogirls/dorothy.png create mode 100644 apps/2024/public/assets/images/djangogirls/eva.png rename {public => apps/2024/public}/assets/images/favicon.ico (100%) create mode 100644 apps/2024/public/assets/images/img1.jpg create mode 100644 apps/2024/public/assets/images/img2.jpg create mode 100644 apps/2024/public/assets/images/img3.jpg create mode 100644 apps/2024/public/assets/images/img4.jpg create mode 100644 apps/2024/public/assets/images/img5.jpg create mode 100644 apps/2024/public/assets/images/img6.jpg create mode 100644 apps/2024/public/assets/images/img7.jpg create mode 100644 apps/2024/public/assets/images/keynote-speakers/anthony-shaw.jpeg create mode 100644 apps/2024/public/assets/images/keynote-speakers/kojo-idrissa.jpeg create mode 100644 apps/2024/public/assets/images/keynote-speakers/monica-oyugi.jpg create mode 100644 apps/2024/public/assets/images/keynote-speakers/ss-musoke.jpg create mode 100644 apps/2024/public/assets/images/logo.png create mode 100644 apps/2024/public/assets/images/pyconug-pallet.webp create mode 100644 apps/2024/public/assets/images/speakers/abigail-afi-gbadago.jpg create mode 100644 apps/2024/public/assets/images/speakers/adewale-olaniyan.png create mode 100644 apps/2024/public/assets/images/speakers/adewale-olaniyan.png.fdmdownload create mode 100644 apps/2024/public/assets/images/speakers/allan-kiche.jpg create mode 100644 apps/2024/public/assets/images/speakers/atieno-ouma.jpg create mode 100644 apps/2024/public/assets/images/speakers/brayan-kai-mwanyumba.jpg create mode 100644 apps/2024/public/assets/images/speakers/emmanuel-okiria.jpg create mode 100644 apps/2024/public/assets/images/speakers/gift-ojeabulu.jpeg create mode 100644 apps/2024/public/assets/images/speakers/hellen-namulinda.jpg create mode 100644 apps/2024/public/assets/images/speakers/kirabo-kakopo-atuhurira.jpeg create mode 100644 apps/2024/public/assets/images/speakers/mwangi-kabiru.jpg create mode 100644 apps/2024/public/assets/images/speakers/olayinka-atobiloye.jpeg create mode 100644 apps/2024/public/assets/images/speakers/wesley-kambale.jpg create mode 100644 apps/2024/public/assets/images/sponsors/psf-logo.png create mode 100644 apps/2024/public/assets/images/sponsors/tiv-dark-logo.png create mode 100644 apps/2024/public/assets/images/sponsors/tiv-logo.png create mode 100644 apps/2024/public/assets/images/swag/hoodie.jpg create mode 100644 apps/2024/public/next.svg create mode 100644 apps/2024/public/thirteen.svg create mode 100644 apps/2024/public/vercel.svg create mode 100644 apps/2024/tailwind.config.ts create mode 100644 apps/2024/tsconfig.json rename 2024/utils/constants.js => apps/2024/utils/constants.ts (64%) delete mode 100644 content/test.md delete mode 100644 jsconfig.json delete mode 100644 next.config.js delete mode 100644 package-lock.json create mode 100644 packages/eslint-config/README.md create mode 100644 packages/eslint-config/library.js create mode 100644 packages/eslint-config/next.js create mode 100644 packages/eslint-config/package.json create mode 100644 packages/eslint-config/react-internal.js create mode 100644 packages/typescript-config/base.json create mode 100644 packages/typescript-config/nextjs.json create mode 100644 packages/typescript-config/package.json create mode 100644 packages/typescript-config/react-library.json create mode 100644 packages/ui/.eslintrc.js create mode 100644 packages/ui/README.md create mode 100644 packages/ui/components.json create mode 100644 packages/ui/package.json rename postcss.config.js => packages/ui/postcss.config.js (66%) rename components/2023/home/index.js => packages/ui/src/components/shared/2023/home/index.tsx (100%) rename components/2023/home/sections/about.js => packages/ui/src/components/shared/2023/home/sections/about.tsx (90%) rename components/2023/home/sections/buy-ticket.js => packages/ui/src/components/shared/2023/home/sections/buy-ticket.tsx (69%) rename components/2023/home/sections/contact.js => packages/ui/src/components/shared/2023/home/sections/contact.tsx (96%) rename components/2023/home/sections/hero.js => packages/ui/src/components/shared/2023/home/sections/hero.tsx (100%) rename components/2023/home/sections/newsletter.js => packages/ui/src/components/shared/2023/home/sections/newsletter.tsx (63%) rename components/2023/home/sections/schedule.js => packages/ui/src/components/shared/2023/home/sections/schedule.tsx (100%) rename components/2023/home/sections/speakers.js => packages/ui/src/components/shared/2023/home/sections/speakers.tsx (83%) rename components/2023/home/sections/sponsors.js => packages/ui/src/components/shared/2023/home/sections/sponsors.tsx (100%) rename components/2023/home/sections/venue.js => packages/ui/src/components/shared/2023/home/sections/venue.tsx (100%) rename components/2023/jumbotron.js => packages/ui/src/components/shared/2023/jumbotron.tsx (90%) rename components/2023/layout/footer.js => packages/ui/src/components/shared/2023/layout/footer.tsx (98%) rename components/2023/layout/navbar.js => packages/ui/src/components/shared/2023/layout/navbar.tsx (95%) rename components/2024/home/about-section.jsx => packages/ui/src/components/shared/2024/home/about-section.tsx (73%) rename components/2024/home/hero.jsx => packages/ui/src/components/shared/2024/home/hero.tsx (100%) rename components/2024/home/jumbotron.jsx => packages/ui/src/components/shared/2024/home/jumbotron.tsx (93%) rename components/2024/home/key-notes.jsx => packages/ui/src/components/shared/2024/home/key-notes.tsx (69%) rename components/2024/home/sponsors.jsx => packages/ui/src/components/shared/2024/home/sponsors.tsx (100%) rename components/2024/home/tickets.jsx => packages/ui/src/components/shared/2024/home/tickets.tsx (69%) rename components/2024/home/venue.jsx => packages/ui/src/components/shared/2024/home/venue.tsx (57%) rename components/2024/layout/navbar.jsx => packages/ui/src/components/shared/2024/layout/Navbar.tsx (97%) rename components/ui/Card.jsx => packages/ui/src/components/shared/Card.tsx (100%) rename components/banner.jsx => packages/ui/src/components/shared/banner.tsx (100%) rename components/blog/header.jsx => packages/ui/src/components/shared/blog/header.tsx (100%) rename components/blog/meta-data.jsx => packages/ui/src/components/shared/blog/meta-data.tsx (95%) rename components/blog/preview.jsx => packages/ui/src/components/shared/blog/preview.tsx (100%) rename components/ui/button.jsx => packages/ui/src/components/shared/button.tsx (99%) rename components/ui/logo.js => packages/ui/src/components/shared/logo.tsx (53%) rename {components => packages/ui/src/components/shared}/schedule/data.js (100%) rename components/schedule/schedule-panel.jsx => packages/ui/src/components/shared/schedule/schedule-panel.tsx (100%) rename components/schedule/schedule-step.jsx => packages/ui/src/components/shared/schedule/schedule-step.tsx (95%) rename components/schedule/schedule-tab.jsx => packages/ui/src/components/shared/schedule/schedule-tab.tsx (100%) rename components/schedule/schedule-tabs.jsx => packages/ui/src/components/shared/schedule/schedule-tabs.tsx (100%) rename components/ui/sections/page-section.jsx => packages/ui/src/components/shared/sections/page-section.tsx (100%) rename components/shop/data.js => packages/ui/src/components/shared/shop/data.tsx (100%) rename components/shop/step.jsx => packages/ui/src/components/shared/shop/step.tsx (100%) rename components/speakers/keynote-speaker-card.jsx => packages/ui/src/components/shared/speakers/keynote-speaker-card.tsx (91%) rename components/speakers/keynote-speakers-data.js => packages/ui/src/components/shared/speakers/keynote-speakers-data.tsx (100%) rename components/speakers/speaker-card.jsx => packages/ui/src/components/shared/speakers/speaker-card.tsx (100%) rename components/speakers/speakers-data.js => packages/ui/src/components/shared/speakers/speakers-data.tsx (100%) rename components/speakers/title-section.jsx => packages/ui/src/components/shared/speakers/title-section.tsx (100%) rename components/to-be-announced.jsx => packages/ui/src/components/shared/to-be-announced.tsx (100%) create mode 100644 packages/ui/src/components/ui/button.tsx create mode 100644 packages/ui/src/globals.css create mode 100644 packages/ui/src/lib/utils.ts create mode 100644 packages/ui/tailwind.config.ts create mode 100644 packages/ui/tsconfig.json create mode 100644 pnpm-lock.yaml create mode 100644 pnpm-workspace.yaml delete mode 100644 tailwind.config.js create mode 100644 turbo.json diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..1e48203 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,10 @@ +# editorconfig.org +root = true + +[*] +charset = utf-8 +end_of_line = lf +indent_size = 2 +indent_style = space +insert_final_newline = true +trim_trailing_whitespace = true \ No newline at end of file diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..e928b86 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,10 @@ +// This configuration only applies to the package manager root. +/** @type {import("eslint").Linter.Config} */ +module.exports = { + ignorePatterns: ["apps/**", "packages/**"], + extends: ["@repo/eslint-config/library.js"], + parser: "@typescript-eslint/parser", + parserOptions: { + project: true, + }, +}; diff --git a/.eslintrc.json b/.eslintrc.json deleted file mode 100644 index bffb357..0000000 --- a/.eslintrc.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": "next/core-web-vitals" -} diff --git a/.gitignore b/.gitignore index 55175ef..8e1ce44 100644 --- a/.gitignore +++ b/.gitignore @@ -1,32 +1,35 @@ # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. -# dependencies -/node_modules -/.pnp +# Dependencies +node_modules +.pnp .pnp.js -# testing -/coverage +# Local env files +.env +.env*.local -# next.js -/.next/ -/out/ +# Testing +coverage -# production -/build +# Turbo +.turbo + +# Vercel +.vercel + +# Build Outputs +.next/ +out/ +build +dist -# misc -.DS_Store -*.pem -# debug +# Debug npm-debug.log* yarn-debug.log* yarn-error.log* -.pnpm-debug.log* -# local env files -.env*.local - -# vercel -.vercel +# Misc +.DS_Store +*.pem diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000..97c3c12 --- /dev/null +++ b/.npmrc @@ -0,0 +1,2 @@ +auto-install-peers = true +enable-pre-post-scripts=true # Enable pre/post scripts (for postui:add) diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..b94ae68 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 dan5py (git@dan5py.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md index 197658b..ec8d976 100644 --- a/README.md +++ b/README.md @@ -2,17 +2,129 @@ ## Run PyCon Uganda Website locally -1. Install the dependencies +![Static Badge](https://img.shields.io/badge/shadcn%2Fui-0.8.0-blue?link=https%3A%2F%2Fgithub.com%2Fshadcn%2Fui) + +This is Turborepo starter with shadcn/ui pre-configured. + +> [!NOTE] +> This example uses `pnpm` as package manager. + +[npm version](https://github.com/dan5py/ug.pycon.org/tree/npm) + +## Using this example + +Clone the repository: + +```sh +git clone https://github.com/PyconUg/ug.pycon.org.git +``` + +Install dependencies: + +```sh +cd ug.pycon.org +pnpm install +``` + +### Add ui components + +Use the pre-made script: + +```sh +pnpm ui:add +``` + +> This works just like the add command in the `shadcn/ui` CLI. + +### Add a new app + +Turborepo offer a simple command to add a new app: + +```sh +pnpm turbo gen workspace --name +``` + +This will create a new empty app in the `apps` directory. + +If you want, you can copy an existing app with: + +```sh +pnpm turbo gen workspace --name --copy +``` + +> [!NOTE] +> Remember to run `pnpm install` after copying an app. + +## What's inside? + +This Turborepo includes the following packages/apps: + +### Apps and Packages + +- `2024`: a [Next.js](https://nextjs.org/) app +- `2024`: another [Next.js](https://nextjs.org/) app +- `@repo/ui`: a stub React component library shared by both `web` and `docs` applications (🚀 powered by **shadcn/ui**) +- `@repo/eslint-config`: `eslint` configurations (includes `eslint-config-next` and `eslint-config-prettier`) +- `@repo/typescript-config`: `tsconfig.json`s used throughout the monorepo + +Each package/app is 100% [TypeScript](https://www.typescriptlang.org/). + +### Utilities + +This Turborepo has some additional tools already setup for you: + +- [TypeScript](https://www.typescriptlang.org/) for static type checking +- [ESLint](https://eslint.org/) for code linting +- [Prettier](https://prettier.io) for code formatting + +### Build + +To build all apps and packages, run the following command: + +```sh +cd ug.pycon.org +pnpm build +``` + +### Develop + +To develop all apps and packages, run the following command: + +```sh +cd ug.pycon.org +pnpm dev +``` + +### Remote Caching + +Turborepo can use a technique known as [Remote Caching](https://turbo.build/repo/docs/core-concepts/remote-caching) to share cache artifacts across machines, enabling you to share build caches with your team and CI/CD pipelines. + +By default, Turborepo will cache locally. To enable Remote Caching you will need an account with Vercel. If you don't have an account you can [create one](https://vercel.com/signup), then enter the following commands: + ``` - npm install +cd ug.pycon.org +npx turbo login ``` -2. First, run the development server +This will authenticate the Turborepo CLI with your [Vercel account](https://vercel.com/docs/concepts/personal-accounts/overview). + +Next, you can link your Turborepo to your Remote Cache by running the following command from the root of your Turborepo: -```bash -npm run dev +```sh +npx turbo link ``` -Access the live development server at [http://localhost:3000](http://localhost:3000) +## Useful Links + +Learn more about the power of Turborepo: + +- [Tasks](https://turbo.build/repo/docs/core-concepts/monorepos/running-tasks) +- [Caching](https://turbo.build/repo/docs/core-concepts/caching) +- [Remote Caching](https://turbo.build/repo/docs/core-concepts/remote-caching) +- [Filtering](https://turbo.build/repo/docs/core-concepts/monorepos/filtering) +- [Configuration Options](https://turbo.build/repo/docs/reference/configuration) +- [CLI Usage](https://turbo.build/repo/docs/reference/command-line-reference) + +Learn more about shadcn/ui: -You'll be able to access the development server and you can contribute accordingly. +- [Documentation](https://ui.shadcn.com/docs) diff --git a/app/2023/django-girls/page.jsx b/app/2023/django-girls/page.jsx deleted file mode 100644 index 49b28e1..0000000 --- a/app/2023/django-girls/page.jsx +++ /dev/null @@ -1,132 +0,0 @@ -import Image from "next/image"; -import Link from "next/link"; -import { DJANGO_GIRLS_REG } from "@/2023/utils/constants"; - -export default function DjangoGirls() { - return ( - <> - {" "} -
-
-
-

- Django Girls Tutorial -

-
- -
- {" "} -

- We are pleased to inform you that the Django girls will hold a tutorial during the Pycon Uganda 2023 conference. -

-

- Kindly register here if you are interested in attending. -

-
-
-
-
-
- -
-
-
-

Django Girls Kampala

-

If you are female and you want to learn how to build websites, we have good news for you! We are holding a one-day workshop for beginners!

-

It will take place during the PyCon Uganda conference, at National ICT Innovation Hub. We would like to give you an opportunity to learn how to program and become one of us - female programmers!

-

The workshop is free of charge and if you are interested in being part of this training, you can apply for a pass now!!

-
-
-

Apply for a pass!

-

If you are a woman and you have a laptop - you can apply for a pass! You don't need to know any technical stuff - The workshop is for people who are new to programming.

-

As a workshop attendee you will:

-
    -
  • Attend a one-day Django workshop during which you will create your first website
  • -
  • Get a chance to meet other ladies in the tech world
  • -
  • Interact with the organizers and some of the sponsors
  • -
-
-
-
-
-
-

Become a participant

-

Feel free to apply and also tell a friend about this workshop. Let's dream, code and create.

-
- - Register here - -
-
-
-
-
-
-

Do I need to know anything about websites or programming?

-

No! This workshop is for beginners. You do not need to know anything about it. However, if you have a little bit of technical knowledge (i.e. you know what HTML or CSS are) you still can apply!

-

Should I bring my own laptop?

-

Yes. We have no hardware, so we expect you to bring your computer with you. It is also important for us that you will take home everything you will write and create during the workshop.

-
-
-

Do I need to have something installed on my laptop?

-

It would be helpful to have Django installed before the workshop, but we wouldn't expect you to install anything on your own. We will have an installation party the evening before the workshop.

-

Do I need to be part of Django girls already?

-

No. You need to sign up for the tutorial session and you will join the group for other activities if interested.

-
-
-
-

Lead coach for the day:

-
-
-
- Rounded avatar -
-
Anne Namuli
- -
-
-
-
-
-

Agenda:

-
-
-
-
    -
  • 08:30 - 09:00 am Registration & check in
  • -
  • 09:00 - 09:10 am Welcome Address
  • -
  • 09:10 - 09:30 am Keynote
  • -
  • 09:30 - 10:45 am Dive into Python
  • -
-
-
-
    -
  • 10:45 - 11:00 am Breakfast
  • -
  • 11:00 - 13:00 pm Dive into Django
  • -
  • 13:00 - 14:00 pm Lunch Break
  • -
  • 14:00 - 16:45 pm More Django and Deployment
  • -
-
-
-
    -
  • 16:45 - 17:00 pm Break
  • -
  • 17:00 - 17:30 pm Fixing Bugs and AOB
  • -
  • 17:30 - 18:00 pm Wrap up and announcements and photoshoot
  • -
-
-
-
-
- - ); - } - diff --git a/app/2023/financial-aid/page.jsx b/app/2023/financial-aid/page.jsx deleted file mode 100644 index b81068e..0000000 --- a/app/2023/financial-aid/page.jsx +++ /dev/null @@ -1,93 +0,0 @@ -import Link from "next/link"; - -export default function DiversityPage() { - return ( - <> -
-
-
-

- Financial Aid -

-

- Interested in attending but not financially able to? PyCon Uganda is offering financial aid opportunity for you! -

-
-
-
- -
-

- PyCon Uganda 2023 is offering grants to attendees and speakers, so that those who might otherwise not be able to attend won’t hesitate to participate. Some expenses for the conference attendance (which can include travel, hotel, registration etc.) will be covered for opportunity grant recipients. - We actively encourage people to apply for an opportunity grant. While we wish we could give grants to everyone who applies, we do not have the funds to do that. Our goal is to maximise the impact our grant program has, within the limited funds we have. - -

We try to do this in a number of ways:
-

    -
  • Conferences are a meeting place for developers from all around the globe. Therefore, the selection process is designed to benefit people that we believe make a difference, particularly speakers and tutorial presenters.
  • -
  • Additionally, the selection process attempts to promote a more diverse PyCon Uganda. While encouraging diversity takes many forms, we’re happy to use the opportunity grant program as a very direct method of supporting diversity within the Django community. In particular, our grant program prioritises people part of an underrepresented or marginalised group in tech, as these people are more likely to experience hardships and difficulties in traveling to our events and being a part of our community.
  • -
  • When prioritising grant applications, we try to get a feel for how much impact this grant will have on the applicant and the wider community and country, compared to others. In this, we consider things like involvement in a local community, social impact of the applicant’s activities, and how accessible other conferences are to them.
  • -
-



-

- Eligibility -

- -

- Our program prioritises speakers first, and then anyone who is part of an underrepresented or marginalised group in tech. These groups include, but are not limited to: -

-
    -
  • Women and other gender minorities of all expressions and identities; e.g. transgender and non-binary people
  • -
  • People of color
  • -
  • Sexuality minorities, including asexual people
  • -
  • People with disabilities, both visible and invisible
  • -
  • Neurodivergent people
  • -
  • People with chronic illnesses or diseases
  • -
  • Religious and ethnic minorities
  • -
  • Age minorities (under ~21, over ~60)
  • -
  • People experiencing poverty
  • -
  • Homeless and home/food insecure people
  • -
  • Caregivers of children or other dependents
  • -
  • People who have experienced trauma and its aftermath (PTSD, anxiety, etc)
  • -
  • People living with or recovering from substance abuse
  • -
-

-

- We strongly encourage all eligible individuals to apply for our tickets. -

-
- - Apply for Financial Aid - -

-

If you are an accepted speaker, and you don’t need a grant because your employer is funding your conference costs, we can recognise your employer for this. For now we’re planning to get their logo in the programme, next to your talk. This is opt-in. With this, we hope to make it a bit easier for you to convince your employer to contribute towards your conference costs as a speaker.

-

-

-

Lastly, we know that for some people it can be difficult to feel like it’s okay for you to apply. That’s why we want to make it clear that:

-
    -
  • Have you already attended a conference in the past? That’s ok.
  • -
  • Already received a grant in the past? Still ok.
  • -
  • Don’t have much experience with Python? That’s ok, too.
  • -
  • Don’t want to take money away from someone else? Really, it’s ok!
  • -
  • Don’t feel like you deserve this? That’s also ok: you do.
  • -
-

-

*Submitting your application does not guarantee immediate approval, as each application will be individually reviewed by the PyCon Uganda Organizing Team. Applications will be evaluated based on the information provided in the application form to determine the applicant's eligibility. -

-
- -

- *Privacy: All personal information collected will be kept strictly confidential. The data collected through this form will be used exclusively by our financial aid work team for the purpose of selecting scholarship recipients and processing financial aid. Rest assured that no data will be shared with third parties. -

-

-

With our limited funds, we can’t promise you will receive a grant, but if you’re not sure, we encourage you to apply. If you’re uncomfortable with other people knowing you received a grant, you don’t have to tell them - our policy is to never publicly identify grant applicants or recipients unless we have your explicit permission.

-

- - Apply for Financial Aid - -
-
-

-
- - ); -} diff --git a/app/2023/health-and-safety/page.jsx b/app/2023/health-and-safety/page.jsx deleted file mode 100644 index 0246363..0000000 --- a/app/2023/health-and-safety/page.jsx +++ /dev/null @@ -1,116 +0,0 @@ -import Link from "next/link"; - -export default function HealthAndSafety() { - return ( - <> - {" "} -
-
-
-

- Health and Safety Guidelines -

-

- Our attendees' health and safety remain our top priority and we look to the venue, and Ministry of Health guidelines to make the best and most informed decisions around onsite safety and requirements so we will be erring on the side of safety for all participants.

- PyCon Uganda will continue to provide social distancing where possible in the venue. Hand sanitizer will also be available for all attendees. The guidelines implemented for PyCon Uganda 2023 are subject to change based on health and safety recommendations at the time of the event. We are committing, however, to only make changes in the direction of greater protections. - -

-
-
-
-
-

- Mask Requirement -

-

- Face coverings will be required of everyone inside the conference venue at PyCon Uganda. This is necessary since PyCon Uganda hosts attendees from all over the world who travel in and may have unknowingly been exposed to COVID-19. This allows us to host the safest event possible for everyone in attendance. We will not be rolling back our mask requirement. -

- Exceptions are: -

-
    -
  1. - Outdoor Spaces -
  2. -
  3. - Indoors while consuming food and while socially distanced from other participants -
  4. -
  5. - While necessary for communicating with someone who is hearing impaired when the ability to see the mouth is essential for communication -
  6. -
  7. - Speakers while presenting -
  8. -
-
-

- Masks must be worn over the nose and mouth and must be made of a tight-knit, non-permeable material. N95 or equivalent masks are required. As N95 is an American standard, masks certified by other governments to similar standards (e.g. PM2.5, KN95, and KF94) will also be allowed.
Speakers will not be required to wear masks while presenting. Participants should provide their own masks for the event, though extras will be available at no cost during the conference at the registration desk while supplies last. Participants who are unwilling to follow the mask requirement will be asked to leave. -

- -
-
-

- Vaccination Requirement -

-

- PyCon Uganda 2023 will require vaccine verification. COVID-19 vaccines are effective at protecting people from getting seriously ill, being hospitalized, and dying. As with other diseases, you are protected best from COVID-19 when you stay up to date with the recommended vaccines, including locally available boosters. -

- -
-
-

- Rapid Testing -

-

- We encourage attendees to do a rapid test before traveling and consider testing during the event, especially if you will be eating indoors with people. We did look into providing free, rapid onsite testing for participants but it is not feasible (logistically or financially) for an event like ours. -

- -
-
-

- Attendance -

-

- Individuals should not attend the event if they are COVID-positive, are exhibiting COVID symptoms (as defined by the Ministry of Health), or have been exposed, within 7 days prior to the event, to someone who was COVID-positive or showed COVID symptoms.
- If you are feeling sick or exhibiting symptoms of COVID-19, or test positive for COVID-19, prior to the start of the conference, or on any day of the conference, please contact us at pyconug@pycon.org, and we will exchange your ticket type for an online ticket or grant you a refund. - -

- -
-

- Travel -

-

- Anyone traveling to the event should read and abide by the Travel Guidelines for domestic and international travel. We ask that participants respect fellow attendees and do everything possible to ensure an environment that is as safe as possible. -

- -
-
-

- Ebola Update -

-

- Uganda was officially declared Ebola-free as of 11th January 2023. More details... -

- -
-
-

- Monitoring of the Requirements Will Continue -

-

- We have monitored COVID-related news and data since the pandemic started, and we will continue to do so moving forward. We continue to follow all Ministry of Health guidelines in addition to those of the local government and venue. International, national, regional, and local sources are closely watched and will result in a change of policy if warranted. -

- -
-
-

- Commitment to Compliance -

-

- PyCon Uganda takes these Health & Safety Guidelines very seriously and will therefore enforce a 3-strike rule. Anyone who violates these guidelines on three separate accounts, such as continuing not to wear a proper mask or disregarding social distancing, is subject to removal from the conference. -

-
- - ); - } - \ No newline at end of file diff --git a/app/2023/layout.js b/app/2023/layout.js deleted file mode 100644 index 3a9839f..0000000 --- a/app/2023/layout.js +++ /dev/null @@ -1,38 +0,0 @@ -import Navbar from "@/components/2023/layout/navbar"; -import Footer from "@/components/2023/layout/footer"; -import 'react-toastify/dist/ReactToastify.css'; -import "@/app/globals.css"; - -export const metadata = { - title: "PyCon Uganda", - description: "First ever Python Conference in Uganda", -}; - -export default function RootLayout({ children }) { - return ( - - - {/* */} - - - - - - - - - -
{children}
-