This project is a Next.js-based website designed to provide an interactive learning experience, showcasing educational videos and synchronized presentation slides. The project includes a user-friendly interface for navigating through various educational content, organized into separate projects with unique pages for each.
- Responsive Design: The website adapts to different screen sizes for an optimal user experience.
- Video-Slide Synchronization: Videos and slides are uploaded and displayed in sync, offering a cohesive learning experience.
- Project Showcase: The homepage features a main page displaying various educational projects, each with its own dedicated page.
- User-Friendly Navigation: Uses
Link
components with thelegacyBehavior
method to fix navigation issues in Next.js. - Organized File Structure: Educational content (videos and slides) is organized into dedicated folders for easy management.
Public
├── slides/ # Folder containing presentation slides
├── videos/ # Folder containing educational videos
├── slideMetadata.json # JSON file containing metadata for slides
components
├── SlideViewer.tsx # Component for viewing slides in sync with videos
├── VideoPlayer.tsx # Component for video player integration
├── BackgroundLines.tsx # Background animation component for a dynamic interface
pages
├── projects
│ ├── project1.tsx # Page for the first educational project
│ ├── project2.tsx # Page for the second educational project
├── _app.tsx # App component for initializing the Next.js app
├── index.tsx # Homepage showcasing all projects
├── about.tsx # About page
├── contact.tsx # Contact page
types
└── index.d.ts # TypeScript types for the project
To run the project locally, follow these steps:
-
Clone the repository:
git clone https://github.com/usama7871/usama-apps.git
-
Navigate to the project directory:
cd usama-apps
-
Install the dependencies:
npm install
-
Run the development server:
npm run dev
-
Open your browser and visit
http://localhost:3000
to view the website.
- Next.js: React framework for building server-side rendered applications.
- TypeScript: JavaScript with type safety for a better development experience.
- React: A JavaScript library for building user interfaces.
- CSS: Styling for layout and design (includes responsive design).
- Fork the repository.
- Create a new branch (
git checkout -b feature-name
). - Make your changes and commit them (
git commit -am 'Add new feature'
). - Push to the branch (
git push origin feature-name
). - Open a pull request with a description of your changes.
This project is licensed under the MIT License.