{"id":23624603,"url":"https://github.com/makedonkatochevska/challenges","last_synced_at":"2026-04-08T11:31:15.535Z","repository":{"id":269816370,"uuid":"908548831","full_name":"makedonkatochevska/challenges","owner":"makedonkatochevska","description":"Weekly coding challenges","archived":false,"fork":false,"pushed_at":"2025-08-31T11:45:33.000Z","size":51616,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-03T12:14:49.505Z","etag":null,"topics":["bootstrap","css","css-flexbox","front-end-development","html","html5","javascript","nextjs","reactjs","sass","scss","typescript","website-development"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/makedonkatochevska.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-12-26T10:44:52.000Z","updated_at":"2025-08-31T11:45:35.000Z","dependencies_parsed_at":"2024-12-26T11:29:36.018Z","dependency_job_id":"f23c6e87-12fc-4eb6-ad68-fd96dbf408a5","html_url":"https://github.com/makedonkatochevska/challenges","commit_stats":null,"previous_names":["makedonkatochevska/challenges"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/makedonkatochevska/challenges","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/makedonkatochevska%2Fchallenges","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/makedonkatochevska%2Fchallenges/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/makedonkatochevska%2Fchallenges/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/makedonkatochevska%2Fchallenges/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/makedonkatochevska","download_url":"https://codeload.github.com/makedonkatochevska/challenges/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/makedonkatochevska%2Fchallenges/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31553988,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T10:21:54.569Z","status":"ssl_error","status_checked_at":"2026-04-08T10:21:38.171Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["bootstrap","css","css-flexbox","front-end-development","html","html5","javascript","nextjs","reactjs","sass","scss","typescript","website-development"],"created_at":"2024-12-27T21:15:09.390Z","updated_at":"2026-04-08T11:31:15.507Z","avatar_url":"https://github.com/makedonkatochevska.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Weekly Front-End Challenges\n\nWelcome to my repository for the **weekly challenges** at **Brainster Front-End Academy**! Each week, we are tasked with a new challenge that helps us sharpen our coding skills and apply the concepts learned during the course.\n\n### Challenge Format:\n\n- **Frequency**: One challenge every week.\n- **Duration**: We have **7 days** to complete each challenge.\n- **Progression**: The difficulty of the challenges increases over time, starting with simpler tasks and gradually advancing to more complex ones.\n\nThe challenges are designed to build our skills progressively, from mastering basic HTML and CSS to diving deeper into Bootstrap, JavaScript, React, and other advanced front-end technologies. With each passing week, we face new problems that push us to think critically and improve our ability to write clean, efficient code.\n\n### What You’ll Find in This Repo:\n\n- **Main Branch**: Overview and general information about the challenges.\n- **Individual Challenge Branches**: Each branch corresponds to a specific week's challenge. Explore them to see how we tackle different front-end tasks each week.\n\nThese challenges are a great way to test your skills, experiment with new ideas, and see your progress as a front-end developer. Check out the branches to see how the challenges escalate and the skills i develop each week!\n\nBelow is a list of all the branches in this repository, along with a summary of what each one contains:\n\n### Challenge Branches:\n\n- **Branch**: `Challenge1_CSS`\n\n  - **Summary**: Focused on building a webpage with basic CSS. It included exercises on text styling, layout creation, and working with simple CSS properties like margins, padding, fonts, and colors.\n\n- **Branch**: `Challenge2_CSSflex`\n\n  - **Summary**: Introduced the use of CSS Flexbox to create flexible and responsive layouts. Emphasis was placed on alignments, order of elements, and distribution of space within a container.\n\n- **Branch**: `Challenge3_SCSS`\n\n  - **Summary**: Worked with SCSS (Sass) to explore variables, nesting, and mixins. This challenge involved converting plain CSS to SCSS and understanding how to structure stylesheets more efficiently.\n\n- **Branch**: `Challenge4_Bootstrap`\n\n  - **Summary**: Applied Bootstrap to create responsive web layouts. Focused on using the grid system, components, and utilities provided by Bootstrap to build a layout that adapts to different screen sizes.\n\n- **Branch**: `Challenge5_JSBasics`\n\n  - **Summary**: Covered the fundamentals of JavaScript, including variables, data types, functions, loops, and conditionals. Focused on writing simple scripts to manipulate data and control the flow of logic.\n\n- **Branch**: `Challenge6_Arr_Loops_Functions`\n\n  - **Summary**: Implemented array manipulation techniques using JavaScript, such as `map()`, `filter()`, `reduce()`, and worked with loops and functions to process data in different ways.\n\n- **Branch**: `Challenge7_Array_Methods`\n\n  - **Summary**: Focused on using JavaScript array methods to perform advanced data manipulation. Covered methods like `forEach()`, `find()`, `sort()`, and `reverse()` to modify arrays and work with data efficiently.\n\n- **Branch**: `Challenge8_Functions_Advanced`\n\n  - **Summary**: Deep dive into JavaScript functions with a focus on advanced topics such as higher-order functions, closures, and callback functions. This challenge enhanced understanding of how functions can be used effectively in JavaScript.\n\n- **Branch**: `Challenge9_JS_Events_and_Objects`\n\n  - **Summary**: Introduced JavaScript events and objects, showing how to manipulate the DOM through event listeners, how to handle user interactions, and how to create and manipulate custom objects in JavaScript.\n\n- **Branch**: `Challenge10_JS_Objects`\n\n  - **Summary**: Focused on understanding and working with JavaScript objects. Covered topics such as object properties, methods, iteration over objects, and object manipulation techniques.\n\n- **Branch**: `Challenge11_JS_Scoping_Date_Contex`\n\n  - **Summary**: Covered JavaScript scoping, context, and closures, with an emphasis on the `this` keyword and how it behaves in different contexts. Also included working with JavaScript's `Date` object for date manipulation and formatting.\n\n- **Branch**: `Challenge12_JavaScript_CRUD`\n\n  - **Summary**: Implemented CRUD (Create, Read, Update, Delete) operations using JavaScript to manipulate data in arrays or objects. Focused on working with forms, storing data in variables, and updating the DOM dynamically.\n\n- **Branch**: `Challenge13_Async_JavaScript`\n\n  - **Summary**: Explored asynchronous JavaScript programming using techniques like callbacks, promises, and async/await. The challenge involved making asynchronous API calls, handling data, and building a more interactive and responsive user experience.\n\n- **Branch**: `Challenge14_React_Basics`\n\n  - **Summary**: Built a responsive single-page React application using TypeScript and Vite. The challenge emphasized core React concepts such as component-based architecture, prop management, and integration with external data sources. Key goals included creating reusable UI components, applying TypeScript best practices, and rendering dynamic content from a JSON Server to simulate real-world data interaction.\n\n- **Branch**: `Challenge15_React_Hooks_Events`\n\n  - **Summary**: Developed a desktop-focused React application using TypeScript to dynamically display and filter bike products. The challenge centered on API integration, component reusability, and managing UI state with React hooks. Core objectives included building modular UI components, implementing single-filter logic for gender or brand, and rendering real-time filter badge counts to reflect matching products.\n\n- **Branch**: `Challenge16_React_Routing`\n\n  - **Summary**: Implemented client-side routing in a React application using react-router-dom. The challenge focused on setting up dynamic and nested routes, utilizing route parameters, and managing layout with shared components. Key goals included building a consistent layout with \u003cOutlet /\u003e, handling navigation through \u003cLink\u003e, and ensuring graceful fallback routing for undefined paths.\n\n- **Branch**: `Challenge17_React_Context`\n\n  - **Summary**: Developed a restaurant application using React, TypeScript, Zustand for state management, and react-router-dom for client-side routing. Implemented features include listing all restaurants, detailed restaurant pages with dynamic reviews, favorites management with persistence, cuisine filtering, and a surprise restaurant feature. Utilized AJAX `PUT` requests to update reviews on the backend, integrated Lottie animations for error pages, and maintained a consistent layout with reusable components like Navbar and Footer. Focused on clean component design, type safety, and smooth user experience with real-time UI updates.\n\n- **Branch**: `Challenge18_React_with_Firebase`\n\n  - **Summary**: Built a workout tracking web application using React, TypeScript, and Firebase Authentication for user login/logout functionality. Implemented client-side routing with react-router-dom and protected routes to ensure only authenticated users can access certain pages (e.g., All Workouts, Add New Workout). Utilized conditional rendering and \u003cNavigate replace /\u003e to manage redirection and route protection. Integrated Firebase Firestore for storing workout data and used onAuthStateChanged to persist user sessions across refreshes. Focused on responsive design, seamless navigation, and a secure, user-friendly experience.\n\n- **Branch**: `Challenge19_NextJS`\n\n  - **Summary**: Built a fully functional store with product listing, filtering by category and gender, search functionality, and product detail pages. Implemented client-side routing, dynamic URL-based filters, responsive design, and SEO-friendly metadata.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmakedonkatochevska%2Fchallenges","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmakedonkatochevska%2Fchallenges","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmakedonkatochevska%2Fchallenges/lists"}