├── 2023
├── Essentials.md
├── JavaScript.md
├── README.md
└── Tasks
│ └── TailwindCSS
│ ├── Task1
│ ├── README.md
│ └── index.html
│ ├── Task2
│ ├── README.md
│ ├── images
│ │ ├── favicon-32x32.png
│ │ ├── illustration-dashboard.png
│ │ └── logo.svg
│ └── index.html
│ ├── Task3
│ ├── README.md
│ ├── fonts
│ │ ├── Inter-VariableFont_slnt,wght.ttf
│ │ ├── README.txt
│ │ └── static
│ │ │ ├── Inter-Bold.ttf
│ │ │ ├── Inter-ExtraBold.ttf
│ │ │ └── Inter-Regular.ttf
│ ├── images
│ │ ├── favicon-32x32.png
│ │ ├── icon-menu-close.svg
│ │ ├── icon-menu.svg
│ │ ├── image-gaming-growth.jpg
│ │ ├── image-retro-pcs.jpg
│ │ ├── image-top-laptops.jpg
│ │ ├── image-web-3-desktop.jpg
│ │ ├── image-web-3-mobile.jpg
│ │ └── logo.svg
│ └── index.html
│ ├── Task4
│ ├── README.md
│ ├── images
│ │ ├── client-audiophile.svg
│ │ ├── client-databiz.svg
│ │ ├── client-maker.svg
│ │ ├── client-meet.svg
│ │ ├── favicon-32x32.png
│ │ ├── icon-arrow-down.svg
│ │ ├── icon-arrow-up.svg
│ │ ├── icon-calendar.svg
│ │ ├── icon-close-menu.svg
│ │ ├── icon-menu.svg
│ │ ├── icon-planning.svg
│ │ ├── icon-reminders.svg
│ │ ├── icon-todo.svg
│ │ ├── image-hero-desktop.png
│ │ ├── image-hero-mobile.png
│ │ └── logo.svg
│ └── index.html
│ ├── Task5
│ ├── README.md
│ ├── images
│ │ ├── bg-pattern-quotation.svg
│ │ ├── favicon-32x32.png
│ │ ├── image-daniel.jpg
│ │ ├── image-jeanette.jpg
│ │ ├── image-jonathan.jpg
│ │ ├── image-kira.jpg
│ │ └── image-patrick.jpg
│ └── index.html
│ └── public
│ ├── Task1
│ ├── desktop-design.jpg
│ ├── desktop-preview.jpg
│ └── mobile-design.jpg
│ ├── Task2
│ ├── desktop-design.jpg
│ ├── desktop-hover-error-states.jpg
│ ├── desktop-preview.jpg
│ ├── mobile-design.jpg
│ └── mobile-error-state.jpg
│ ├── Task3
│ ├── active-states.jpg
│ ├── desktop-design.jpg
│ ├── desktop-preview.jpg
│ ├── mobile-design.jpg
│ └── mobile-menu.jpg
│ ├── Task4
│ ├── active-states.jpg
│ ├── desktop-design.jpg
│ ├── desktop-preview.jpg
│ ├── mobile-design.jpg
│ ├── mobile-menu-collapsed.jpg
│ └── mobile-menu-expanded.jpg
│ └── Task5
│ ├── desktop-design.jpg
│ ├── desktop-preview.jpg
│ └── mobile-design.jpg
├── 2024
├── README.md
└── roadmap.svg
├── .gitignore
└── README.md
/.gitignore:
--------------------------------------------------------------------------------
1 | temp
2 | *.drawio
3 | .env
--------------------------------------------------------------------------------
/2023/Essentials.md:
--------------------------------------------------------------------------------
1 | # **Web Development Essentials Roadmap**
2 |
3 | This roadmap is designed to provide university students with the essential knowledge and skills required for web development. The roadmap covers key topics such as how the internet works, version control, HTML, CSS, and Tailwind CSS. The content is divided into 8 weeks, making it suitable for a structured learning approach. By following this roadmap, university students will gain a solid foundation in web development and be ready to explore more advanced concepts and technologies.
4 |
5 | ## **Target Audience**
6 |
7 | - University students studying computer science, software engineering, or related fields.
8 | - Individuals seeking to acquire fundamental web development skills.
9 |
10 | ## **How the Internet Works (Week 1)**
11 |
12 | - Gain a fundamental understanding of how the internet functions and the technologies that power it.
13 | - Familiarize yourself with concepts such as IP addresses, domains, HTTP, and DNS.
14 |
15 | ## **Introduction to version control (Week 2)**
16 |
17 | ### **_Courses_**
18 |
19 | - [Big Data - Git and GitHub](https://youtu.be/Q6G-J54vgKc): A comprehensive video tutorial series covering the basics of Git and GitHub for beginners.
20 | - [Meta - Version Control](https://www.coursera.org/learn/introduction-to-version-control): A course that introduces the concept of version control and its importance in modern software development.
21 |
22 | ### **_Topics_**
23 |
24 | 1. version control basics
25 | 2. requirements
26 | 3. Git architecture
27 | 4. Git commands
28 | 5. Git branching
29 | 6. GitHub
30 |
31 | ## **HTML (Week 3)**
32 |
33 | ### **_Courses_**
34 |
35 | - [Elzero Web School - Learn HTML](https://youtu.be/qfPUMV9J5yw): A comprehensive video tutorial series covering the basics of HTML for beginners.
36 |
37 | ### **_Topics_**
38 |
39 | 1. HTML basics
40 | 2. HTML elements
41 | 3. HTML attributes
42 | 4. HTML headings
43 | 5. HTML paragraphs
44 | 6. HTML links
45 | 7. HTML images
46 | 8. HTML lists
47 | 9. HTML tables
48 | 10. HTML forms
49 |
50 | ## **CSS (Week 4)**
51 |
52 | ### **_Courses_**
53 |
54 | - [Elzero Web School - Learn CSS](https://youtu.be/qyVkLebgfzY): A complete video tutorial series covering the modern CSS for frontend developers.
55 |
56 | ### **_Topics_**
57 |
58 | 1. CSS basics
59 | 2. CSS selectors
60 | 3. CSS positioning
61 | 4. CSS layouts
62 | 5. CSS flexbox
63 | 6. CSS grid
64 | 7. CSS transforms
65 | 8. CSS transitions
66 | 9. CSS animations
67 |
68 | ## **Practical Templates (Week 5-6)**
69 |
70 | ### **_Toturials_**
71 |
72 | - [HTML And CSS Template 1](https://youtu.be/_-eh8cwGGwg)
73 | - [HTML And CSS Template 2](https://youtu.be/heuDmrEAgUA)
74 | - [HTML And CSS Template 3](https://youtu.be/vkc99WHcDTk)
75 | - [HTML And CSS Template 4](https://youtu.be/DflEcuzjsyA)
76 |
77 | ## **Tailwind CSS (Week 7)**
78 |
79 | ### **_Courses_**
80 |
81 | - [Tailwind CSS Tutorial by The Net Ninja](https://youtube.com/playlist?list=PL4cUxeGkcC9gpXORlEHjc5bgnIi5HEGhw): A playlist of video tutorials covering the fundamentals of Tailwind CSS.
82 | - [Arabic - Tailwind CSS by Tarmiz Academy](https://youtu.be/Pk3hhCJG2Dk) `Optional but GREAT`: A great video tutorial series covering the fundamentals of Tailwind CSS for Arabic speakers.
83 |
84 | ### **_Topics_**
85 |
86 | 1. Tailwind CSS basics
87 | 2. Tailwind CSS utilities
88 | 3. Tailwind CSS components
89 | 4. Tailwind CSS responsive design
90 | 5. Tailwind CSS plugins
91 |
92 | ## **Practical Templates (Week 8)**
93 |
94 | ### **_Templates_**
95 |
96 | 1. [Tailwind CSS Template 1](Tasks/TailwindCSS/Task1)
97 | 2. [Tailwind CSS Template 2](Tasks/TailwindCSS/Task2)
98 | 3. [Tailwind CSS Template 3](Tasks/TailwindCSS/Task3)
99 | 4. [Tailwind CSS Template 4](Tasks/TailwindCSS/Task4)
100 | 5. [Tailwind CSS Template 5](Tasks/TailwindCSS/Task5)
101 |
102 | ## **Additional Meteirals**
103 |
104 | - [Arabic - Bootstrap 5 by Tarmiz Academy](https://youtu.be/65EFKUpYk2A): A great video tutorial series covering the fundamentals of Bootstrap 5 for Arabic speakers.
105 |
106 | By completing this roadmap, you'll acquire a strong foundation in web development and be equipped with the necessary skills to start working with JavaScript. Remember to practice hands-on coding, work on projects, and continue learning beyond this roadmap to enhance your skills and stay up to date with the latest industry trends.
107 |
108 | Good luck on your journey to becoming a web developer!
109 |
--------------------------------------------------------------------------------
/2023/JavaScript.md:
--------------------------------------------------------------------------------
1 | # **JavaScript Roadmap for Frontend Developers**
2 |
3 | This roadmap is designed to guide frontend developers in mastering JavaScript, starting from the basics and progressing to an advanced level. The suggested timeline is divided into 5 to 8-week intervals, allowing learners to cover the material systematically. The roadmap includes recommended courses, topics, articles, and practical projects to enhance learning.
4 |
5 | ## **Target Audience**
6 |
7 | - Frontend developers seeking to strengthen their JavaScript skills and deepen their understanding of frontend web development.
8 | - Individuals with basic programming knowledge looking to specialize in frontend technologies.
9 |
10 | ## **Prerequisites**
11 |
12 | - Familiarity with HTML and CSS.
13 | - Basic understanding of JavaScript syntax and concepts.
14 |
15 | ## **Beginner Level (Weeks 1-2)**
16 |
17 | ### **_Courses_**
18 |
19 | - [JavaScript Tutorial for Beginners by freeCodeCamp](https://www.youtube.com/watch?v=PkZNo7MFNFg): A comprehensive video tutorial series covering JavaScript fundamentals for beginners.
20 |
21 | ### **_Topics_**
22 |
23 | 1. Variables, data types, and operators
24 | 2. Control flow and loops
25 | 3. Functions and scope
26 | 4. Arrays and objects
27 | 5. DOM manipulation basics
28 | 6. Introduction to asynchronous programming with callbacks
29 |
30 | ### **_Articles_**
31 |
32 | - [MDN JavaScript Guide](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide): Comprehensive documentation and tutorials for JavaScript.
33 |
34 | ### **_Projects_**
35 |
36 | Requirements:
37 |
38 | - Create a simple web application that allows users to manage a todo list.
39 | - Users should be able to add tasks, mark tasks as completed, and delete tasks.
40 | - The application should have a visually appealing and intuitive user interface.
41 |
42 | Features:
43 |
44 | - Add new tasks: Users can enter a task and press a button to add it to the list.
45 | - Mark tasks as completed: Users can click on a task to mark it as completed.
46 | - Delete tasks: Users can remove tasks from the list.
47 | - Visual feedback: Completed tasks should be visually distinguished from active tasks.
48 |
49 | Tools:
50 |
51 | - HTML and CSS: Design and structure the user interface.
52 | - JavaScript: Implement the functionality for adding, completing, and deleting tasks.
53 | - DOM manipulation: Update the task list dynamically.
54 | - Event handling: Capture user interactions with the todo list.
55 |
56 | ## **Intermediate Level (Weeks 3-5)**
57 |
58 | ### **_Courses_**
59 |
60 | - [The Complete JavaScript Course 2022 by Jonas Schmedtmann](https://www.udemy.com/course/the-complete-javascript-course): Covers modern JavaScript features, ES6+ syntax, DOM manipulation, asynchronous programming, and more.
61 | - [Frontend Masters](https://frontendmasters.com): Provides a wide range of high-quality JavaScript courses taught by industry experts.
62 |
63 | ### **_Topics_**
64 |
65 | 1. ES6+ features (arrow functions, destructuring, modules, etc.)
66 | 2. Error handling and debugging
67 | 3. Higher-order functions and functional programming concepts
68 | 4. Promises and async/await
69 | 5. Manipulating the DOM with advanced techniques
70 | 6. Fetching data from APIs
71 |
72 | ### **_Project: Weather Application_**
73 |
74 | Requirements:
75 |
76 | - Develop a weather application that displays current weather information based on user input.
77 | - The application should fetch weather data from a weather API and present it in a user-friendly format.
78 | - Use modern JavaScript techniques and DOM manipulation to create a dynamic and responsive user interface.
79 |
80 | Features:
81 |
82 | - Input field: Users can enter a location (e.g., city name) to retrieve weather information.
83 | - Weather display: Present the current weather conditions, including temperature, humidity, and weather description.
84 | - Icon representation: Show weather icons corresponding to the current weather conditions.
85 | - Responsive design: Ensure the application looks good on different screen sizes.
86 |
87 | Tools:
88 |
89 | - HTML and CSS: Structure the application and create a visually appealing user interface.
90 | - JavaScript: Fetch weather data from an API, handle user input, and update the DOM dynamically.
91 | - Fetch API: Make HTTP requests to the weather API and retrieve weather data.
92 | - JSON parsing: Extract the necessary weather information from the API response.
93 | - Asynchronous programming: Handle asynchronous operations to retrieve and display the weather data.
94 |
95 | ## **Advanced Level (Weeks 6-8)**
96 |
97 | ### **_Courses_**
98 |
99 | - [Advanced JavaScript Concepts by Andrei Neagoie](https://www.udemy.com/course/advanced-javascript-concepts): Explores advanced topics, design patterns, clean code practices, and JavaScript frameworks.
100 |
101 | ### **_Topics_**
102 |
103 | 1. Closures and scope
104 | 2. Prototypes and inheritance
105 | 3. Event handling and event-driven architecture
106 | 4. Modules and module bundlers (Webpack, Rollup, etc.)
107 | 5. Testing frameworks (Jest, Mocha, etc.)
108 | 6. Performance optimization and profiling
109 | 7. Security best practices
110 |
111 | ### **_Project: To-Do List Application Enhancement_**
112 |
113 | Requirements:
114 |
115 | - Enhance the previous todo list application by implementing additional features and improving the user experience.
116 | - Apply advanced JavaScript concepts and best practices to optimize the codebase and add more functionality.
117 |
118 | Features:
119 |
120 | - Data persistence: Save the todo list data in local storage, so users can access their tasks even after closing and reopening the application.
121 | - Drag-and-drop functionality: Allow users to reorder tasks by dragging and dropping them within the list.
122 | - Task filters: Implement filters to display tasks based on their completion status (e.g., show only completed tasks, show only active tasks).
123 | - Animations: Add smooth transitions and animations when tasks are added, completed, or deleted.
124 |
125 | Tools:
126 |
127 | - HTML, CSS, and JavaScript: Build upon the previous todo list application's codebase and extend its functionality.
128 | - Local storage: Store and retrieve the todo list data in the browser's local storage.
129 | - Drag-and-drop libraries (e.g., Dragula, Sortable): Implement the drag-and-drop functionality.
130 | - JavaScript frameworks (e.g., React): Utilize a framework to simplify state management and enhance the application.
131 |
132 | ## **Final Project: Movie Recommendation Web Application**
133 |
134 | ### _Requirements:_
135 |
136 | - Create a web application that recommends movies to users based on their preferences and search queries.
137 | - Utilize external APIs to retrieve movie data, such as movie titles, descriptions, ratings, and images.
138 | - Implement a user-friendly interface that allows users to search for movies, view movie details, and receive personalized recommendations.
139 |
140 | ### _Features:_
141 |
142 | 1. Movie Search:
143 | - Users can enter search queries to find movies by title, genre, or actor.
144 | - Display search results with relevant movie information, including ratings and poster images.
145 | - Clicking on a movie should display detailed information, such as a synopsis and cast.
146 | 2. Movie Reviews and Ratings:
147 | - Enable users to leave reviews and ratings for movies they have watched.
148 | - Display average ratings and user reviews alongside movie details.
149 | 3. User Interaction:
150 | - Implement features for users to add movies to their watchlist or mark movies as watched.
151 | - Provide options for users to share movie recommendations with friends via social media.
152 | 4. Responsive Design:
153 | - Ensure the application is responsive and accessible across different devices and screen sizes.
154 |
155 | ### _Tools:_
156 |
157 | - HTML, CSS, and JavaScript: Develop the frontend application using these core technologies.
158 | - Frameworks or libraries: Utilize frontend frameworks or libraries (e.g., React) for building the user interface and managing state.
159 | - Movie APIs: Integrate movie-related APIs, such as the IMDb API or The Movie Database (TMDb) API, to fetch movie data.
160 | - Authentication: Implement user authentication using frameworks like Firebase Authentication or Auth0 for personalized recommendations and user profiles.
161 | - Database: Utilize a database (e.g., Firebase Firestore, MongoDB) to store user information, movie ratings, and reviews.
162 | - UI libraries: Enhance the user interface with UI libraries like Material-UI or Tailwind.
163 |
164 | ### _Additional Suggestions:_
165 |
166 | - Implement features like movie trailers, similar movie recommendations, or the ability to create and join movie discussion forums.
167 | - Apply advanced JavaScript concepts and best practices, such as modular code architecture, efficient data fetching, and error handling.
168 | - Consider incorporating additional technologies like Redux for state management, GraphQL for API queries, or Express.js for a backend API if desired.
169 |
170 | Remember to customize the project based on your preferences and goals, and feel free to add your own creative touches. The Movie Recommendation Web Application provides an opportunity to showcase your skills in frontend development, JavaScript, and integration with external APIs. Best of luck with your final project!
171 |
--------------------------------------------------------------------------------
/2023/README.md:
--------------------------------------------------------------------------------
1 |
FRONT-END ROADMAP 2023
2 |
3 | Are you looking to navigate the ever-evolving world of frontend development? Whether you're a beginner or an experienced developer, understanding the key technologies, tools, and concepts that are essential for success is crucial. This comprehensive roadmap provides you with a clear direction for your learning journey and covers the core aspects of frontend development.
4 |
28 |
29 | This roadmap assumes that You have already studied the following topics:
30 |
31 | - At least **one** programming language, such as **JavaScript**, **C++**, or **Java**, and a basic understanding of the concepts of programming, such as variables, loops, and functions.
32 | - Fundamental of **Algorithms** and **Data Structures**, such as Big O Notation, Arrays, Linked Lists, Stacks, Queues, Sorting, and Searching.
33 | - Understanding of **Object-Oriented Programming** (OOP) concepts, such as classes, inheritance, and polymorphism.
34 |
35 | Here are some resources to learn these topics:
36 |
37 | - [FreeCodeCamp - Introduction to Programming and Computer Science](https://youtu.be/zOjov-2OZ0E) | English
38 | - [FreeCodeCamp - C++ Tutorial for Beginners](https://youtu.be/vLnPwxZdW4Y) | English
39 | - [Elzero Web School - Fundamentals Of Programming With C++](https://youtube.com/playlist?list=PLDoPjvoNmBAwy-rS6WKudwVeb_x63EzgS) | Arabic
40 | - [FreeCodeCamp - Algorithms and Data Structures](https://youtu.be/8hly31xKli0) | English
41 | - [Adel Nasim - Data Structures Full Course](https://youtube.com/playlist?list=PLCInYL3l2AajqOUW_2SwjWeMwf4vL4RSp) | Arabic
42 | - [Omar Ahmed - OOP - بالعربي](https://youtube.com/playlist?list=PLwWuxCLlF_ue7GPvoG_Ko1x43tZw5cz9v) | Arabic
43 |
44 |
Intro
45 |
46 | | Topic | Effort | Resources |
47 | | ------------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------- |
48 | | Internet | 30 minutes | [How the Internet Works](https://youtu.be/e4S8zfLdLgQ), [The Internet Explained](https://www.vox.com/2014/6/16/18076282/the-internet) |
49 | | Browsers | 1 hour | [How browsers work](https://web.dev/howbrowserswork/), [How Do Web Browsers Work?](https://youtu.be/WjDrMKZWCt0) |
50 | | Hosting | 30 minutes | [What Is Web Hosting?](https://youtu.be/htbY9-yggB0), [Different Types of Web Hosting](https://youtu.be/AXVZYzw8geg) |
51 | | Frontend vs Backend | 10 minutes | [Frontend web development](https://youtu.be/WG5ikvJ2TKA) |
52 |
53 |
62 |
63 | By the end of the course, you will be able to:
64 |
65 | - Describe the front-end developer role.
66 | - Explain the core and underlying technologies that power the internet.
67 | - Use HTML to create a simple webpage.
68 | - Use CSS to control the appearance of a simple webpage.
69 |
70 | | Resource | Effort |
71 | | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------- |
72 | | [Meta - Introduction to Front-End Development](https://www.coursera.org/learn/introduction-to-front-end-development?specialization=meta-front-end-developer) | 10 hours |
73 |
74 |
React is a popular choice for building user interfaces because of its declarative approach, component-based architecture, large and active community, flexibility, and performance.