Tech School is a web application designed for educational institutions to manage student profiles and course enrollment. It provides students with the ability to edit their profiles, view available courses, and enroll in courses of their choice. This README provides an overview of the Tech School project, including installation instructions and a brief description of its features.
-
HTML: The foundation of web development.
-
CSS: Cascading Style Sheets for styling web pages.
-
JavaScript: Used for interactive web features.
-
PHP: Server-side scripting language for web development.
-
Tailwind CSS: A utility-first CSS framework for building modern web applications.
-
DaisyUI: A plugin for Tailwind CSS that provides a set of beautiful UI components.
-
JSON: A lightweight data interchange format for storing and exchanging data.
- Composer: A PHP package manager used for dependency management.
- Cloudinary: A cloud-based image and video management service.
- PHPMailer: A popular library for sending email messages securely.
Tech School offers the following features:
- User Authentication: Users can register, log in, and log out of their accounts.
- Profile Management: Students can update their profiles, including their full name, email, phone number, and profile picture.
- Course Listing: Students can view a list of available courses, including descriptions, durations, outlines, and requirements.
- Course Enrollment: Students can enroll in courses by providing a reason for enrolling. Enrollments are stored in the database for future reference.
- Dashboard: After logging in, students are greeted with a personalized dashboard displaying their profile information and enrolled courses.
- User Profiles: Create and customize your user profile with a profile picture and background image.
- Cloudinary Integration: Profile pictures and course images are stored on Cloudinary, providing secure and scalable cloud storage.
- Responsive Design: The application is designed to be responsive and work well on both desktop and mobile devices.
- Alert Messages: Users receive alert messages for successful actions and error notifications.
Follow the instructions below to get the Tech School web application up and running on your local machine.
To run Tech School, you need the following software:
- Web Server: You can use Apache, Nginx, or any other web server of your choice.
- PHP: Install PHP on your server. You can download it from the PHP website.
- MySQL: Set up a MySQL database to store user and course information.
- Composer: Install Composer, a dependency manager for PHP, from the Composer website.
- Cloudinary Account: Sign up for a Cloudinary account to store and manage images.
-
Clone the repository to your local machine.
git clone https://github.com/EzeibekweEmma/tech-school.git
-
Navigate to the project directory.
cd tech-school
-
Install PHP dependencies using Composer.
composer install
-
Create a
.env
file in the project root directory and configure the following variables:# Database Configuration DB_HOST=your_database_host DB_USER=your_database_username DB_PASS=your_database_password DB_NAME=your_database_name # Cloudinary Configuration CLOUD_NAME=your_cloudinary_cloud_name API_KEY=your_cloudinary_api_key API_SECRET=your_cloudinary_api_secret # Email Configuration MAIN_EMAIL=your_email_address PASSWORD=google_app_password RECEIVER_EMAIL=your_email_address
-
Set up your database - Schema:
- Schema for
students
CREATE TABLE `students` ( `id` varchar(255) NOT NULL, `full_name` varchar(255) NOT NULL, `email` varchar(255) NOT NULL, `phone` varchar(20) NOT NULL, `profile_picture` varchar(255) DEFAULT NULL, `password` varchar(255) NOT NULL, `background_img` varchar(255) DEFAULT NULL, `created-time` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp() );
- Schema for
enrolled_courses
CREATE TABLE `enrolled_courses` ( `enrollment_id` int(11) NOT NULL, `student_id` varchar(255) NOT NULL, `course_id` int(11) NOT NULL, `course_title` varchar(255) NOT NULL, `reason` varchar(255) NOT NULL, `enrolled_time` timestamp NOT NULL DEFAULT current_timestamp() );
- Schema for
-
Run the following command to recompile the CSS:
npx tailwindcss -i ./src/styles/input.css -o ./src/styles/output.css --watch
-
Start your web server and navigate to the Tech School application in your web browser.
http://localhost/tech-school
-
You can now register an account, log in, and explore the features of Tech School.
Tech School is designed to be a customizable educational platform. You can extend its functionality by adding more features, such as course creation, admin management, and additional user roles. Customize the styles, layouts, and UI to match your institution's branding.
Here are some common usage scenarios:
- Student Registration: New students can sign up for accounts with their personal information.
- Profile Updates: Students can update their profile information and upload profile pictures.
- Course Enrollment: Students can browse available courses and enroll in those of interest.
- Dashboard: After logging in, students can access their personalized dashboard with profile details and enrolled courses.
- User Profiles: Create and customize your user profile with a profile picture and background image.
Contributions to the Tech School project are welcome! Whether you want to report a bug, suggest an improvement, or contribute code, please follow these guidelines:
- Fork the repository.
- Create a new branch for your feature or bug fix:
git checkout -b feature/your-feature-name
orbugfix/your-bug-fix
. - Make your changes and commit them.
- Write clear and concise commit messages.
- Test your changes thoroughly.
- Push your changes to your fork:
git push origin feature/your-feature-name
. - Create a pull request against the
main
branch of the original repository.
This project is licensed under the MIT License - see the LICENSE file for details.
- Cloudinary - Image and video management for web and mobile apps.
- XAMPP - A free and open-source cross-platform web server solution stack.
- TailwindCSS - A utility-first CSS framework for building modern web applications.library.
- HeroIcons - Beautiful hand-crafted SVG icons.
- 000webhost - Free web hosting service.