[TOC]
This is an unofficial repository for the
Open Source Track Resources - 3 Months - 2019
In this repository, you will find:
- Lectures Resources
- Slides (when applicable)
- Links to external resources (including recordings when available)
- Demos
- Labs
- Solutions (Partial)
Open Source Track - 3 Months is a sponsored program that aims to:
- Empower Open Source Community and Egyptian Universities with
- Highly educated, well trained Professional Developers
- Very well designed and developed curriculum and content
- Rebuild a new IT Professional mindset, that is capable of learning new techniques and tools immediately in a standard production level (move from being a student to become a professional)
- Database Fundamentals
- Introduction to Web Development
- HTML5 and CSS3
Ubuntu System Administration I provides a foundation for students wishing to become full-time Linux system administrators by introducing key command line concepts and other enterprise tools. These concepts are further developed in the follow-on courses, where students utilize the basic skills they have learned in this course later on.
- Access the command line
- Manage files from command line
- Create, view, and edit text files
- Manage local Linux users and groups
- Monitor and manage Linux processes
- Control services and daemons
- Control access to files with Linux file-system permissions
- Install and update software packages
- Access Linux file systems
This course provides details of the /etc/httpd.conf
configuration file, using .htaccess
files, virtual hosts, MIME and file types, URL mapping, directory indexing, performance tuning, handlers, filters, server-side includes, managing scripts, security and Apache modules
- HTTP overview
- Overview about web server
- Apache web page lifecycle
- Apache structure
- Basic configuration
- Important modules
- Aliases and re-directors
- Delegation control with HTTP access
- HTTP secure sites
- Apache security
- Monitoring and Logs
- Performance tuning
Using Bootstrap, developers will be able to speed up the front-end development process and mormalize cross-browser compatibility issues. Bootstrap encourage a more structured design the same way a newspaper grid system does.
- CSS Frameworks overview
- Bootstrap framework overview
- Bootstrap with CSS
- Bootstrap components
- Boostrap Plugins
- Handling Events
This course will teach developers to use JavaScript in creating dynamic applications that take full advantage of the browser objects and responds to users' inputs and events, moving to discussing the available object-oriented programming with JavaScript syntax.
- Designing interactive web pages
- Creating JSON files and making AJAX requests using JavaScript
- Building your own library
- Applying Object Oriented programming concept cliend side script language using JavaScript
Advanced JavaScript programming (especially the complex handling of browser differences), can often be very difficult and time-consuming to work with. To deal with these difficulties, a lot of JavaScript (helper) libraries have been developed .These JavaScript libraries are often called JavaScript frameworks. It could be divided into: DOM manipulation as JQuery, Server-Side as NodeJs, Web-application as AngularJS, and Graphical/Visualization as Raphael.
- What's JQuery and what's so good about it
- Who is using it
- Cross-browser compatibility
- JQuery and UI Plugins
- Handling Events
- Handling Form inputs and Form validation
- Downloading and including JQuery
- Google and Microsoft SDN
- Developer vs. Production versions (compressed vs uncompressed)
- JQuery namespace and JQuery
$
alias - Revisiting HTML DOM
- Debugging JQuery problems
- Accessibility concerns
- Making sure that the page is ready
- Selections using CSS3
- Decorating with CSS
- Effects with JQuery (e.g. hiding, revealing, and toggling elements)
- Event handlers
- Adding and removing HTML elements
- Modifying content
- Simple form validation
- The submit event
- Validation plugin
- Form hints
- Check box checker
- Inline editing
- Auto complete
- Star rating input
MySQL is an open source relational database that is free for most uses. It has wide platform support and can be quickly deployed. MySQL has become a standard for small and medium sized organizations, as it is affordable, reliable, and fast. This course provides developers with a comprehensive overview of MySQL. They will be able to install, run, tune, create, and use databases. Basics of database applications will also be covered so that the developer will have the tools to create database backed websites.
- Introduction
- DDL
- Create database, Indexes, Creating tables
- Data-types
- Primary key and foreign key
- DML (Insert, Update, Delete)
- SELECT statement and sub-queries
- Joins
- Group By and Having
- Retrieve data from multiple tables
- Unions
- Special functions
- Views, Stored Procedures, Triggers
This course is a gateway to learning software version control (SVC), process management, and collaboration techniques. It reviews the history of version control and demonstrates the fundamental concepts: check-in / checkout, forking, merging, commits, and distribution. The choice of any SVC system is critical to effectively managing and version the assets in a software development project (from source code, images, and compiled binaries to installation packages), so the course also surveys the solutions available.
- Comparing centralized vs. distributed systems
- Saving changes and tracking history
- Using revert to rollback
- Working with the GUI tools
- Using IDE and Shell integration
- Installing different systems
- Creating a repository
- Tagging code
- Branching and merging code
- Selecting a software version control system that's right for you
PHP is a server side scripting language which has gained wide-spread popularity and acceptance in the web-developing community because of its powerful functionality and ease of use. Because of its simplicity, even non-programmers or starters can create their own web sites easily by using PHP. This probably explains the existence of over five million PHP-based web sites on the Internet.
- PHP Overview
- Installing and configuring PHP
- Introduction to PHP Programming
- Form Parsing in PHP
- Using Session variables in PHP
- Working with files and directories in PHP
- PHP Arrays
- PHP Functions
- MySQL Connection
Laravel is a free, open-source framework used for the development of web applications. Based in PHP, Laravel follows the model-view-controller architecture pattern. According to Laravel, its goal is to "take the pain out of development by easing common tasks used in the mmajority of web projects, such as authentication, routing, sessions, and caching" (Laravel.com, 2019). Laravel aims to maximize application functionality, while increasing ease and efficiency of development. Advanced PHP Programming will cover Laravel Framework in details.
- Introduction to Laravel Tool and Application
- Authentication and authorization
- Core infrastructure
- Databases
- Model-View-Controller
- Web Form
- View and Layout
The final projects are the culmination of the boot-camp. Students work together to put everything they have learnt (and more!) into practice: implemnting, configuring, and deploying an original project in teams of 3 or 4 over a 3 days period.
- Coding an original web app from scratch
- Build it all! from back-end to user interface
- Deploy on a production environment
- Pitch your web-app at a public graduation "demo day"
Web Development (Open Source) - 354 Hours
- Linux Operating System (24h)
- Database Fundamentals (24h)
- MySQL (18h)
- Introduction to Web Technologies (24h)
- HTML5 (18h)
- JavaScript (24h)
- Bootstrap (12h)
- jQuery (12h)
- Apache Web Server (6h)
- PHP (30h)
- Advanced PHP (30h)
- Git (12h)
- GIMP (24h)
- Extracurricular Activities (42h)
- Freelancing Skills (24h)
- Project (30h)
- Commuinication, Presentation Skills, Interviewing, and CV Writing Skills (within Project)
Your contribution and collaboration in building this repository is important.
To download a single folder from Github, we can use https://minhaskamal.github.io/DownGit/#/home.