A Next.js application that generates HTML5 tabs with JavaScript and inline CSS for MOODLE LMS deployment.
- Student Name: Zaher Abuamro
- Student Number: 22365417
- Course: CSE3CWA
- Assignment: Freelance Services Agreement (Assignment 1)
This application creates HTML5 code with JavaScript and inline CSS that can be deployed on MOODLE LMS. The focus is on generating clean, standalone HTML that works without external dependencies.
▶ Watch the demo on Google Drive
- ✅ Navigation Bar with tab navigation
- ✅ Header component with student number display
- ✅ Footer with copyright, student name, number, and date
- ✅ About page with student information
- ✅ Dark Mode / Light Mode toggle
- ✅ System preference detection
- ✅ Theme persistence using localStorage
- ✅ Responsive hamburger menu for mobile
- ✅ CSS Transform animations for menu toggle
- ✅ Accessible with proper ARIA labels
- ✅ Generate up to 15 tabs with + and - controls
- ✅ Editable tab headers
- ✅ Editable tab content
- ✅ Tab configuration stored in localStorage
- ✅ Live preview of tabs
- ✅ Generates standalone HTML5 code
- ✅ Uses only inline CSS (no CSS classes)
- ✅ Code can be copied and pasted into .html file
- ✅ Downloadable HTML file
- ✅ Copy to clipboard functionality
- ✅ Multiple commits planned
- ✅ Feature branches for development
- ✅ .gitignore excludes node_modules
- ✅ Updated README file
- Framework: Next.js 14 with App Router
- Language: TypeScript
- Styling: Tailwind CSS
- State Management: React hooks + localStorage
- Cookie Management: js-cookie
- Accessibility: WCAG compliant
# Clone the repository
git clone [your-repo-url]
cd tab-generator
# Install dependencies
npm install
# Run development server
npm run dev
# Build for production
npm run build
# Start production server
npm startsrc/
├── app/
│ ├── about/page.tsx
│ ├── tabs/page.tsx
│ ├── escape-room/page.tsx
│ ├── coding-races/page.tsx
│ ├── court-room/page.tsx
│ ├── prelab/page.tsx
│ ├── layout.tsx
│ ├── page.tsx
│ └── globals.css
├── components/
│ ├── Header.tsx
│ ├── Footer.tsx
│ └── ThemeProvider.tsx
└── types/
- Home Page: Overview of the application and available features
- Tabs Page: Main functionality for creating and editing tabs
- About Page: Student information and project details
- Other Pages: Placeholder pages for future assignments
- Navigate to the Tabs page
- Use "Add Tab" to create new tabs (maximum 15)
- Click on any tab header to edit its name
- Click in the content area to edit tab content
- Use "Remove Tab" to delete the current tab
- Click "Generate HTML5 Output" to create exportable code
- Standalone HTML5 document
- Inline CSS styling (no external classes)
- JavaScript for tab functionality
- Responsive design
- Accessibility features
- Semantic HTML structure
- ARIA labels and roles
- Keyboard navigation support
- Focus indicators
- Screen reader compatibility
- Color contrast compliance
- Chrome 90+
- Firefox 88+
- Safari 14+
- Edge 90+
- Project setup with Next.js 14
- TypeScript configuration
- Initial file structure
- About page implementation
- Cookie management for navigation
- Basic styling setup
- Header with hamburger menu
- Footer implementation
- Theme system (Dark/Light mode)
- Breadcrumb navigation
- CSS Transform animations
- Interactive tab generator
- HTML5 code output
- localStorage integration
- Copy/download functionality
- GitHub Copilot: Code completion and suggestions
- ChatGPT: Architecture planning and problem-solving
- Claude: Code review and optimization
All AI-generated code has been reviewed, tested, and customized for this specific assignment.
The application has been tested for:
- Cross-browser compatibility
- Mobile responsiveness
- Accessibility compliance
- Generated HTML5 code validity
- localStorage functionality
- Escape Room game implementation
- Coding Races challenge system
- Court Room simulation
- Pre-lab Questions quiz system
- API integration
- Database connectivity
- Docker containerization
- Authentication system
This project is created for educational purposes as part of La Trobe University coursework.