├── __mocks__ ├── styleMock.js ├── fileMock.js ├── next │ ├── link.js │ ├── router.js │ ├── image.js │ └── navigation.js └── hooks.js ├── .prettierignore ├── .eslintrc.json ├── src ├── app │ ├── about │ │ ├── about.module.css │ │ └── page.tsx │ ├── favicon.ico │ ├── meetups │ │ └── page.tsx │ ├── speakers │ │ └── page.tsx │ ├── react-query-provider.tsx │ ├── community │ │ └── community.module.css │ ├── api │ │ ├── speakers │ │ │ └── route.ts │ │ ├── actionLinks │ │ │ └── route.ts │ │ ├── cohort │ │ │ └── route.ts │ │ ├── person-image │ │ │ └── route.ts │ │ ├── speakerRequestForm │ │ │ └── route.ts │ │ ├── notificationForm │ │ │ └── route.ts │ │ └── people │ │ │ └── route.ts │ ├── page.tsx │ ├── hooks │ │ └── useGlobalState │ │ │ └── useGlobalState.tsx │ ├── _constants.tsx │ ├── layout.tsx │ └── page.module.css ├── components │ ├── cardsSection │ │ ├── cardsSection.tsx │ │ └── cards.test.js │ ├── spinner │ │ ├── spinner.tsx │ │ ├── spinner.module.css │ │ └── spinner.test.js │ ├── groupPhotoSection │ │ ├── groupPhotoSection.test.js │ │ ├── groupPhotoSection.tsx │ │ └── groupPhotoSection.module.css │ ├── speakerForm │ │ ├── index.tsx │ │ └── speakerForm.module.css │ ├── communityModal │ │ └── communityModal.tsx │ ├── button │ │ ├── __snapshots__ │ │ │ └── button.test.js.snap │ │ ├── button.tsx │ │ ├── button.test.js │ │ └── button.module.css │ ├── socialSection │ │ ├── socialSection.test.js │ │ ├── socialLinks.tsx │ │ └── socialSection.tsx │ ├── bannerSection │ │ └── bannerSection.test.js │ ├── heroSection │ │ └── heroSection.test.js │ ├── aboutTeam │ │ ├── aboutTeam.module.css │ │ ├── aboutTeam.tsx │ │ └── aboutTeam.test.js │ ├── toast │ │ ├── toast.tsx │ │ ├── toast.module.css │ │ └── toast.test.js │ ├── ui │ │ ├── Card.module.css │ │ ├── Card.tsx │ │ └── OptimizedImage.tsx │ ├── decorative │ │ ├── backgroundPattern.tsx │ │ └── floatingShapes.tsx │ ├── navbar │ │ └── navbar.test.js │ ├── cohortCard │ │ ├── cohortCard.tsx │ │ ├── cohortCard.test.js │ │ └── cohortCard.module.css │ ├── aboutCTA │ │ ├── aboutCTA.tsx │ │ ├── aboutCTA.test.js │ │ └── aboutCTA.module.css │ ├── modal │ │ ├── modal.tsx │ │ ├── modal.module.css │ │ └── modal.test.js │ ├── cohortsOverview │ │ ├── cohortsOverview.tsx │ │ └── cohortsOverview.module.css │ ├── communityImpact │ │ ├── communityImpact.tsx │ │ └── communityImpact.module.css │ ├── ErrorBoundary.tsx │ ├── aboutOffer │ │ ├── aboutOffer.module.css │ │ └── aboutOffer.tsx │ ├── aboutValues │ │ ├── aboutValues.tsx │ │ ├── aboutValues.module.css │ │ └── aboutValues.test.js │ ├── communityTeam │ │ ├── communityTeam.module.css │ │ └── communityTeam.tsx │ ├── communityGetInvolved │ │ ├── communityGetInvolved.tsx │ │ └── communityGetInvolved.module.css │ ├── aboutHero │ │ ├── aboutHero.tsx │ │ ├── aboutHero.test.js │ │ └── aboutHero.module.css │ ├── aboutMission │ │ ├── aboutMission.tsx │ │ ├── aboutMission.module.css │ │ └── aboutMission.test.js │ ├── teamList │ │ └── teamList.tsx │ ├── communitySpeakers │ │ ├── communitySpeakers.tsx │ │ └── communitySpeakers.module.css │ ├── sponsorshipSection │ │ └── sponsorshipSection.tsx │ ├── footer │ │ ├── footer.test.js │ │ └── footer.tsx │ ├── cohortsStructure │ │ └── cohortsStructure.tsx │ ├── cohortsProjects │ │ ├── cohortsProjects.module.css │ │ └── cohortsProjects.tsx │ ├── cohortsDetails │ │ └── cohortsDetails.module.css │ └── cohortsRequirements │ │ └── cohortsRequirements.tsx ├── hooks │ ├── useBodyScrollLock.ts │ ├── useVideoPlayer.ts │ ├── useScrollEffect.ts │ └── useForm.ts ├── types │ └── index.ts └── contexts │ └── ToastContext.tsx ├── types ├── globalTypes.d.ts └── speaker.ts ├── .prettierrc ├── .babelrc ├── lib └── appwrite_client.ts ├── .env.development ├── .gitignore ├── .github ├── ISSUE_TEMPLATE │ ├── feature_request.md │ ├── chore │ ├── bug_report.md │ └── chore.md └── workflows │ └── main.yml ├── tsconfig.json ├── SECURITY.md ├── next.config.mjs ├── LICENSE ├── jest.config.json ├── __test__ └── setupTests.js ├── server.js └── package.json /__mocks__/styleMock.js: -------------------------------------------------------------------------------- 1 | module.exports = {}; 2 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | .github/ 2 | __test__/ 3 | __mocks__/ -------------------------------------------------------------------------------- /__mocks__/fileMock.js: -------------------------------------------------------------------------------- 1 | module.exports = 'test-file-stub'; 2 | -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "next/core-web-vitals" 3 | } 4 | -------------------------------------------------------------------------------- /src/app/about/about.module.css: -------------------------------------------------------------------------------- 1 | .aboutPage { 2 | width: 100%; 3 | overflow-x: hidden; 4 | } 5 | -------------------------------------------------------------------------------- /src/app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dallassoftwaredevelopers/DSDsite/HEAD/src/app/favicon.ico -------------------------------------------------------------------------------- /types/globalTypes.d.ts: -------------------------------------------------------------------------------- 1 | // This file is deprecated - use unified types from @/types instead 2 | export * from './index'; 3 | -------------------------------------------------------------------------------- /src/app/meetups/page.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | export default function MeetupsPage() { 4 | return
{LABELS.about.cta.subtitle}
19 |16 | {LABELS.cohorts.overview.description} 17 |
18 |17 | {LABELS.community.sections.impact_desc} 18 |
19 |{LABELS.errorHandling.unexpectedErrorMessage}
40 | 43 |19 | {LABELS.about.values.community_first.description} 20 |
21 |30 | {LABELS.about.values.continuous_learning.description} 31 |
32 |41 | {LABELS.about.values.inclusivity.description} 42 |
43 |46 | {LABELS.about.team.description} 47 |
48 |28 | {LABELS.community.sections.get_involved_desc} 29 |
30 |{LABELS.community.sections.become_speaker_desc}
47 | 48 | 52 |55 | {LABELS.community.sections.team_desc} 56 |
57 |{LABELS.about.hero.subtitle}
62 |16 | {LABELS.about.mission.description} 17 |
18 |16 | {LABELS.about.offer.monthly_meetups.description} 17 |
18 |24 | {LABELS.about.offer.conference.description} 25 |
26 |32 | {LABELS.about.offer.career_support.description} 33 |
34 |40 | {LABELS.about.offer.open_source.description} 41 |
42 |48 | {LABELS.about.offer.cohort_program.description} 49 |
50 |56 | {LABELS.about.offer.discord.description} 57 |
58 |Join a thriving group of passionate developers
74 |35 | {LABELS.teamList.admin_role} 36 |
37 |{LABELS.app.orgName}
38 | {person.linkedin && ( 39 | 46 | 54 | 55 | )} 56 |33 | {LABELS.community.sections.speakers_desc} 34 |
35 |{LABELS.community.sections.callout_desc}
69 | 73 |31 | {LABELS.sponsorship.description} 32 |
33 |{LABELS.sponsorship.modal_cta}
55 | 70 |56 | {LABELS.cohorts.structure.description} 57 |
58 |{LABELS.cohorts.structure.scheduleNote.description}
84 |{LABELS.social.subheading}
28 | 49 |98 | {LABELS.cohorts.projects.description} 99 |
100 |74 | {LABELS.cohorts.requirements.description} 75 |
76 |{requirement.description}
85 |{LABELS.cohorts.requirements.dallasCallout.description}
105 |