
Learn to build a complete tourist and travel booking system using PHP, MySQL, Bootstrap, and PayPal, including authentication, dynamic data, bookings, deals, and sandbox payment setup.
Learn to install xampp, configure Apache server, MySQL, phpMyAdmin, and Perl, and verify the setup by launching the xampp control panel and accessing localhost.
Install Visual Studio Code, the text editor we will use, by downloading for Windows and completing the installation to start coding. Alternatives include php storm and sublime text.
Explore the project theme by using the home page slider to view countries with tours, city images, weekly offers, deals, and pages for reservations, login, and register.
Create a config folder and config.php to define host, db name, user, and password for a MySQL connection, and handle errors with try-catch.
Create a reusable header and footer by building an includes folder with header.php and footer.php, then include them on index.php using require or include to reduce repetitive code.
Learn to build a PHP and MySQL register page with input validation, password hashing using password_hash, and secure insertion into a users table, followed by a login redirect.
Implement a PHP login page for a MySQL user table: validate inputs, query by email, fetch the user, and verify the password with password_verify against the stored hash.
Start sessions on every page to carry username and user_id across the site, validate them to protect pages, and implement logout with session_destroy in PHP.
Create countries and cities tables, seed fake data, and use a MySQL join to render each country with its average city price on the landing page.
Fetch and display country data on the index page using a PHP foreach loop, adding continent, image, and metadata like population and price for a dynamic travel site.
Fetches country data by ID to render the about page with descriptions and city images, and enables making reservations for specific cities.
Create a bookings table and count city bookings by joining cities with bookings, then display the dynamic results on the about page and prepare for reservations.
Fetch country-specific city data in PHP with MySQL using left joins. Count cities per country from the cities table and display results with zero bookings.
Learn to count bookings by joining cities and bookings on city_id, then group by country_id to display the number of bookings per country, with examples for Germany and Egypt.
Learn to build a dynamic booking system with PHP and MySQL, handling reservations, form validation, and inserting bookings with city and user IDs from sessions.
Polish the bookings form by removing an unused button and label, enforce future dates starting tomorrow with PHP validation, and outline a PayPal payment flow with city price times guests.
Set up PayPal payments in PHP using sandbox merchant and buyer accounts, obtain the client ID, and embed the PayPal SDK button for a $100 transaction. Next video adds dynamics.
Make the PayPal checkout dynamic by using session data in pay.php and updating the reservation flow, culminating in the latest $1,200 transaction visible on the account dashboard.
Show the reserve button only when a user is logged in, validate the session, and prevent access to the reservation and payment pages using the session user id for bookings.
Implement a 404 page to handle invalid links, include 404.php, add an else block for missing ids, and test navigation from the about and reservation pages.
Link the bookings page in the header to users/user.php, fetch bookings by the session user ID, display them in a Bootstrap table, and add a 404 page with authentication.
Demonstrates building a dynamic deals page that shows the cheapest cities by price, with a searchable form, dynamic header links, city images, and a link to the reservation page.
Builds a travel search form in PHP with MySQL by loading countries, populating destination options with IDs, and configuring price ranges and trip days for processing.
Build a searchable deals page by wiring a form to search.php, validating inputs, and querying cities by country id and price to display matching results.
Design and implement an admin panel for a travel site, featuring login, admin management, and controls for countries, cities, and bookings statuses.
Set up the admin panel include files and layouts, implement the login page, and connect to an admins table with hashed passwords using PHP sessions and login logic.
Learn how to start and manage sessions for an admin panel, conditionally display the side menu when logged in, and implement a logout flow with session destruction.
Implement a login system with sessions, protect the admin panel from unauthorized access, and ensure correct redirects and routing for logged-out users.
Build the admin index page in PHP with MySQL by querying countries, cities, admins, and bookings counts, aliasing results, and displaying them in a Bootstrap grid on the dashboard.
Build and list admins in a PHP with MySQL admin panel. Fetch all admins, loop through results, and display name and email with header and footer integration.
Create admins with a dynamic PHP page that collects admin name, email, and password, hashes the password, and inserts into the admins table, reusing the register flow.
Create a dynamic countries management workflow in PHP and MySQL, including an admin panel, create country form with image upload, and database insertion for your tours and travel website.
Show how to display all countries in a PHP with MySQL tour site by fetching and listing country name, continent, population, and territory with dynamic IDs for deletion.
Delete a country record by id and remove its image from the server using unlink, ensuring the image and database stay synchronized.
Learn to build a dynamic cities management page in the admin panel with PHP and MySQL, listing city id, name, image, and price, with delete actions and login protection.
Learn to create the cities page by reusing country data, building a dynamic country select, handling submissions, uploading images, and inserting city records with name, days, price, and country id.
Delete cities by id in a PHP with MySQL app, removing the city record from the cities table and unlinking its image from images_cities, then return to the cities list.
Show how to display and manage bookings in a PHP with MySQL tour site, including listing bookings, displaying city images, editing status, and refining the admin bookings UI.
Change booking status from pending to booked successfully with a PHP and MySQL workflow. Pass booking id and status to status.php to update the bookings table.
Are you as fired up as I am? Do you want to build something awesome? Something amazing? Are you a web developer who wants a cool job? If so, then this course is for you. In this course, you will learn how to build a complete booking system from the ground up in a few hours. I already made sure that every part of this course is concise, elegant, and informative, so don't miss out on this cool opportunity. I also included the files needed in different parts of the course for you to follow along with me step by step.
Here is what you are going to learn, first of all, I am going to introduce you to the tools that we are going to be using in this course. And then we are going to build a full authentication system from scratch. While building this system I am going to introduce you to hashing and dehashing passwords. And then, we are going to build general and cool features inside our own app. It's going to be mainly on selecting and placing data. The next step is showing how a booking system is created professionally and then we are going to move to one of the most crucial things in this course and that's Processing the payment with Paypal in the easiest yet most efficient way possible. And then, we are going to build a search form to search for booking deals with multiple inputs. After this, we are going to move to the next part and that's the admin panel. In the admin panel, we are going to finish up every part of our website. We are going to complete the admins, countries, cities, and book parts. So it's going to be fun!! Of course, there is a lot to talk about, but this is just a short description of the course. So if you like it, what are waiting for? Get it now!!