A responsive web application built using Angular, Ionic and TypeScript as part of a technical job assignment.
- Project Overview
- Features
- Tech Stack
- Installation and Setup
- Running the Project
- Testing
- Project Structure
- Code Quality and Linting
- Assumptions and Considerations
- Challenges Faced
- Future Improvements
This project is a responsive web application created from a provided Figma design. The goal is to demonstrate expertise in TypeScript, Angular and Ionic, following industry best practices for code structure, testing and design.
- Fully responsive UI (mobile-first).
- Interactive forms with validation.
- Dynamic data binding and UI updates.
- Linting and unit tests using Jasmine + Karma.
- Cross-browser compatibility.
- Framework: Angular, Ionic
- Languages: TypeScript, HTML, SCSS
- Testing Frameworks: Jasmine, Karma
- Version Control: Git, GitHub
- Code Quality: ESLint, Angular ESLint, Prettier
- Node.js: v20.x or higher
- npm: v10.x or higher
- Angular CLI: v18.x or higher
- Chromium: Installed on Linux (Manjaro)
- Clone the repository:
git clone git@github.com:ramyahm2010/myedu.git
- Navigate to the project folder:
cd myedu - Install dependencies:
npm install
ionic serve- The application runs on
http://localhost:8100/
- Unit Tests: Jasmine + Karma
- Running Tests:
npm run test
src/
├── app/
│ ├── components/ # Reusable components
│ ├── pages/ # App pages
│ └── services/ # API and logic services
├── assets/ # Static assets (fonts, images)
└── theme/variables.scss # Custom styles
- Linting Tools: ESLint, Angular ESLint
- Run Linting:
npm run lint
- The app is designed with a mobile-first approach.
- All required form fields have appropriate validation.
- Chromium is used instead of Chrome due to platform preference.
- Ensuring Karma + Chromium integration on Manjaro Linux.
- Custom toolbar height adjustments and page content alignment.
- Responsive layout adjustments based on Figma design.
- Implement backend API integration.
Author: Ramy Ahmed Email: ramy.ahm2010@gmail.com Website: https://ramyahmed.com
This project was developed as part of a frontend technical assessment. Thank you for reviewing!