{"id":25772053,"url":"https://github.com/developer-multigroup/multigroup-event-page","last_synced_at":"2025-08-28T19:11:03.130Z","repository":{"id":277323270,"uuid":"922115645","full_name":"Developer-MultiGroup/multigroup-event-page","owner":"Developer-MultiGroup","description":"📌 Official event page of Developer MultiGroup where you can discover and attend insightful events every month!","archived":false,"fork":false,"pushed_at":"2025-02-20T14:28:05.000Z","size":27351,"stargazers_count":3,"open_issues_count":9,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-02-20T15:34:02.517Z","etag":null,"topics":["community","events","nextjs","shadcn-ui","turkce","turkiye","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Developer-MultiGroup.png","metadata":{"files":{"readme":"README-ENG.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-25T11:06:40.000Z","updated_at":"2025-02-20T14:28:09.000Z","dependencies_parsed_at":"2025-02-13T10:45:43.300Z","dependency_job_id":null,"html_url":"https://github.com/Developer-MultiGroup/multigroup-event-page","commit_stats":null,"previous_names":["developer-multigroup/multigroup-event-page"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Developer-MultiGroup%2Fmultigroup-event-page","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Developer-MultiGroup%2Fmultigroup-event-page/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Developer-MultiGroup%2Fmultigroup-event-page/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Developer-MultiGroup%2Fmultigroup-event-page/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Developer-MultiGroup","download_url":"https://codeload.github.com/Developer-MultiGroup/multigroup-event-page/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240972939,"owners_count":19887061,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["community","events","nextjs","shadcn-ui","turkce","turkiye","typescript"],"created_at":"2025-02-27T03:32:45.965Z","updated_at":"2025-08-28T19:11:03.104Z","avatar_url":"https://github.com/Developer-MultiGroup.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"![screenshot](public/images/opengraph-image.png)\n\n\u003ch1 align=\"center\"\u003eMultiGroup Events\u003c/h1\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n[![Made With Love](https://img.shields.io/badge/Made%20With-Love%20\u003c3-red.svg)](https://github.com/chetanraj/awesome-github-badges)\n[![Where Developers Become Together](https://img.shields.io/badge/Where%20Developers%20Become-Together!-blue.svg)](https://kommunity.com/devmultigroup)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg)](code_of_conduct.md)\n[![License: GNU 3.0](https://img.shields.io/badge/License-GNU%203.0-orange.svg)](https://opensource.org/license/gpl-3-0)\n[![GitHub pull-requests](https://img.shields.io/github/issues-pr/Developer-MultiGroup/multigroup-event-page.svg)](https://GitHub.com/Developer-MultiGroup/multigroup-event-page/pulls/)\n[![GitHub issues](https://img.shields.io/github/issues/Developer-MultiGroup/multigroup-event-page.svg)](https://GitHub.com/Developer-MultiGroup/multigroup-event-page/issues/)\n\n\u003c/div\u003e\n\n## Overview\n\nThis repository is designed to easily access the events organized by Developer MultiGroup. You can browse past or upcoming events here, and if you would like to contribute, feel free to check out the `issues` section and support us.\n\n[English Documentation](/README-ENG.md)\n\n## Features\n\n- **Dynamic Structure:** Create and publish new events without the need for a database or storage service.\n- **Add to Calendar:** Easily add sessions to your calendar and stay up-to-date.\n- **Access Locations:** Reach the event location easily using map applications suitable for your platform.\n- **Responsive Design:** Fully dynamic design to follow our events from any device.\n\n## Technologies Used\n\n- **Next.js:** Used for developing the user interface.\n- **Shadcn/ui:** Pre-built components used in the project.\n- **Tailwind CSS:** Styling and responsive design.\n- **Pigeon Maps:** Dynamic display of event locations.\n- **Vercel:** Code deployment.\n- **Framer:** Component and page animations.\n\n## Project File Management\n\n### Event Type Structure\n\n```mermaid\nclassDiagram\n    direction LR\n\n    class Event {\n        +number id\n        +string name\n        +string heroDescription\n        +string cardDescription\n        +Location location\n        +string registerLink\n        +string videoUrl\n        +string date\n        +Organizer[] organizers\n        +Speaker[] speakers\n        +Session[] sessions\n        +Sponsor[] sponsors\n        +Ticket[] tickets\n        +string[] images\n        +InitialMetric[] initialMetrics (max 3)\n        +AfterMetrics afterMetrics\n        +ColorPalette colorPalette\n    }\n\n    class Location {\n        +number latitude\n        +number longitude\n        +string name\n        +string subtext\n    }\n\n    class Speaker {\n        +string fullName\n        +string title\n        +string company\n        +string instagram\n        +string linkedin\n        +string twitter\n    }\n\n    class Organizer {\n        +number id\n        +string name\n        +string designation\n        +string image\n    }\n\n    class Session {\n        +string room\n        +string topic\n        +string startTime\n        +string endTime\n        +string speakerName\n    }\n\n    class Sponsor {\n        +string tier (\"platinum\"|\"gold\"|\"silver\"|\"bronze\")\n        +string sponsorSlug\n    }\n\n    class Ticket {\n        +string type\n        +string description\n        +number price\n        +string link\n        +string[] perks\n    }\n\n    class InitialMetric {\n        +string title\n        +number value\n    }\n\n    class AfterMetrics {\n        +string applications\n        +string vipGuests\n        +string supporter\n        +string speakers\n        +string workingParticipant\n        +string jobSeeker\n        +string jobProvider\n        +string satisfaction\n    }\n\n    class ColorPalette {\n        +string primary\n        +string secondary\n        +string accent\n        +string background\n        +string text\n    }\n\n    Event *-- Location : has\n    Event *-- Organizer : organized_by\n    Event *-- Speaker : features\n    Event *-- Session : includes\n    Event *-- Sponsor : backed by\n    Event *-- Ticket : offers\n    Event *-- InitialMetric : highlights\n    Event *-- AfterMetrics : evaluates\n    Event *-- ColorPalette : themed by\n\n```\n\n### Photo Folders\n\n```bash\n/public/images\n    ├── events\n    │   └── event-name\n    ├── logo\n    ├── mockups\n    ├── organizer\n    ├── speakers\n    └── sponsors\n```\n\nThe photo storage structure of the project is shown above.\n\n#### Event Photos\n\nEach event has 3 photos under its own slugified name.\n\n#### Logos\n\nDirectory where the logos used for MultiGroup are stored.\n\n#### Mockups\n\nDirectory where mockups used for events and card designs are stored.\n\n#### Organizer Photos\n\nDirectory where photos of event organizers are collected to be used on the landing page.\n\n#### Speaker Photos\n\nAll speaker photos are stored here with slugified names. When a speaker is added to an event, the photos are automatically fetched using that name.\n\n#### Sponsor Photos\n\nThe logic for sponsor logos is the same as speakers. With a slugified name, sponsor logos are stored in this folder and added to the event object accordingly.\n\n### Component Folders\n\n#### Common Components\n\n(src/components/common)\n\nComponents commonly used across the project.\n\n#### Divider Components\n\n(src/components/dividers)\n\nUsed in section transitions.\n\n#### Event Components\n\n(src/components/event-components)\n\nComponents used in the event page or related to events.\n\n#### Navigation Components\n\n(src/components/navigation-components)\n\nComponents specific to navigation.\n\n#### Speaker Components\n\n(src/components/speaker-components)\n\nComponents related to speakers.\n\n#### External Components\n\n(src/components/ui)\n\nComponents downloaded from external sources like Shadcn UI, Aceternity UI, etc.\n\n### Announcement File\n\n(src/data/announcement.ts)\n\n```mermaid\nerDiagram\n    ANNOUNCEMENT {\n        boolean show \"Whether the announcement bar is visible\"\n        string text \"The message displayed in the banner\"\n        string backgroundColor \"Background color of the banner (HEX format)\"\n        string textColor \"Text color of the banner (HEX format)\"\n        string link \"URL to be redirected when user clicks (e.g., YouTube)\"\n        string linkText \"Text for the link button (e.g., 'Watch')\"\n        boolean showLink \"Determines if the link button should be shown\"\n    }\n```\n\n## Creating a New Event\n\nTo create a new event, you need to add a new object that conforms to the Event type mentioned above in the `src/data/events.ts` file. Here are the detailed steps:\n\n### 1. Basic Information\n\n```typescript\n{\n  id: 3, // Unique ID (must be greater than the highest existing ID)\n  name: \"Event Name 2025\", // Event name must include a year postfix\n  heroDescription: \"Description that will appear in the hero section of the main page\",\n  cardDescription: \"Short description that will appear on the event card\",\n  registerLink: \"Registration link (Kommunity or other platform)\",\n  videoUrl: \"\", // Video link if available\n  date: \"2025-12-31T13:00:00+03:00\", // Date in ISO 8601 format\n}\n```\n\n### 2. Location Information\n\n```typescript\nlocation: {\n  latitude: 41.085660366250444, // Coordinates from Google Maps\n  longitude: 28.950240039927138,\n  name: \"Venue Name\",\n  subtext: \"Detailed address information\"\n}\n```\n\n### 3. Organizers\n\n```typescript\norganizers: [\n  {\n    id: 1,\n    name: \"Organizer Name\",\n    designation: \"Position\",\n    image: \"/images/organizers/organizer-name.webp\", // Slugified name\n  },\n];\n```\n\n### 4. Speakers\n\n```typescript\nspeakers: [\n  {\n    fullName: \"Speaker Name\",\n    title: \"Title\",\n    company: \"Company Name\",\n    // Optional social media links:\n    // instagram: \"username\",\n    // linkedin: \"username\",\n    // twitter: \"username\"\n  },\n];\n```\n\n### 5. Sessions\n\n```typescript\nsessions: [\n  {\n    topic: \"Session Topic\",\n    startTime: \"13.00\", // HH.MM format\n    endTime: \"13.30\",\n    speakerName: \"Speaker Name\",\n    room: \"Room Name\", // \"Main Hall\", \"Side Hall\", \"Network\", etc.\n  },\n];\n```\n\n### 6. Sponsors\n\n```typescript\nsponsors: [\n  {\n    tier: \"\", // \"platinum\", \"gold\", \"silver\", \"bronze\" (currently not used)\n    sponsorSlug: \"sponsor-name\", // Slugified sponsor name\n  },\n];\n```\n\n### 7. Tickets\n\n```typescript\ntickets: [\n  {\n    type: \"Ticket Type\",\n    description: \"Ticket description\",\n    price: 300, // Price (TL)\n    link: \"Ticket purchase link\",\n    perks: [\"Benefit 1\", \"Benefit 2\"],\n  },\n];\n```\n\n### 8. Images\n\n```typescript\nimages: [\n  \"/images/events/event-name/1.webp\",\n  \"/images/events/event-name/2.webp\",\n  \"/images/events/event-name/3.webp\",\n];\n```\n\n### 9. Metrics\n\n```typescript\ninitialMetrics: [\n  { title: \"Metric Title\", value: 100 },\n  { title: \"Another Metric\", value: 50 }\n], // Maximum 3 items\n\n// Post-event metrics (optional)\n// afterMetrics: {\n//   applications: \"700\",\n//   vipGuests: \"200+\",\n//   supporter: \"250+\",\n//   speakers: \"40\",\n//   workingParticipant: \"70%\",\n//   jobSeeker: \"45%\",\n//   jobProvider: \"75%\",\n//   satisfaction: \"90%\"\n// }\n```\n\n### 10. Color Palette\n\n```typescript\ncolorPalette: {\n  primary: \"162, 85%, 96%\", // In HSL format\n  secondary: \"160, 8%, 17%\",\n  accent: \"168, 70%, 75%\",\n  background: \"0, 0%, 100%\",\n  text: \"250, 6.98%, 16.86%\"\n}\n```\n\n### Important Notes:\n\n- **Photo Naming:** All photos should be saved with slugified names\n- **File Formats:** Photos should be in `.webp` format\n- **Folder Structure:** Event photos should be stored in `/public/images/events/event-name/` folder\n- **Speaker Photos:** Should be stored in `/public/images/speakers/` folder with slugified names\n- **Sponsor Logos:** Should be stored in `/public/images/sponsors/` folder with slugified names\n- **Organizer Photos:** Should be stored in `/public/images/organizers/` folder\n\n### Example Usage:\n\nYou can refer to the examples in the `src/data/events.ts` file to examine the structure of existing events.\n\n## Repo Activity\n\n\u003c!-- ![Alt](https://repobeats.axiom.co/api/embed/94a2829520bc7e0ee83043b228c0db765d31cf5b.svg \"Repobeats analytics image\") --\u003e\n\n[![Star History Chart](https://api.star-history.com/svg?repos=Developer-MultiGroup/multigroup-event-page\u0026type=Timeline)](https://star-history.com/#fDeveloper-MultiGroup/multigroup-event-page)\n\n## License\n\nCheck out this project's [license](LICENSE).\n\n## Contact\n\nIf you have any questions about the project, you can contact me via email at `me@furkanunsalan.dev`.\n\nLet me know if you'd like this in a separate file or with any formatting changes!\n\n## Event Banner Image Feature\n\n- Event cards now display a responsive banner image on the right (desktop) or after the tags (on mobile).\n- The image is loaded from `/public/images/banners/{event-slug}-{year}.webp`, where `event-slug` is the slugified event name without the year, and `year` is the latest available.\n- Place your banner images in this folder and name them accordingly. For example: `mobile-developer-conference-2025.webp`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeveloper-multigroup%2Fmultigroup-event-page","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdeveloper-multigroup%2Fmultigroup-event-page","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeveloper-multigroup%2Fmultigroup-event-page/lists"}