- This application is a React‑based web project created to fulfil the requirements of Assignment 1 for the IFQ666 course.
- It serves as a portfolio to showcase a developer’s resume, skills, projects, and experience in a visually appealing and user-friendly way, demonstrating both design and technical capabilities using React.
Contributions from other developers who want to improve IFQ666 are welcome! Follow these steps to contribute effectively:
-
Fork the repository. Click the Fork button on Github to create your own copy of the project
-
Clone your fork
git clone https://github.com/viettask/IFQ666_react_web_assignment1.git
-
Create a new branch for your feature or fix:
git checkout -b feature-or-fix-name
-
Make your changes, and commit them with a meaningful message: Update README.md if needed
git commit -m "Add <feature>/Fix <issue>" -
Push your branch to your fork:
git push origin feature-or-fix-name
-
Open a Pull Request (PR) against the main repository. The repository owner will review and merge once approved.
-
Basic create-react-app setup with a focus on the assignment requirements.
-
Responsive Design: The website adapts to all screen sizes, ensuring an optimal user experience on both desktop and mobile devices.
-
Header with navigation bar menu: A simple and accessible menu allowing users to navigate between pages such as Home, About, Resume, Portfolio, Search, and Photos.
-
Footer: A consistent footer across all pages with email contact and legal information.
-
Pages:
-
Home Page: Includes a hero image and introduction text.
-
About Page: Personal information.
-
Resume Page: Displays a professional summary, career history, skills, and qualifications.
-
Portfolio Page: Showcases projects and creations, populated from Github API.
-
-
External API integration. The project uses multiple online APIs:
- API #1 – Project/portfolio data (for dynamic population of the Portfolio page)
- API #2 – Google Maps API via @react-google-maps/api (Used for location features and geolocation-based interactions)
-
Core web technologies
- HTML5 - structure and semantic layout
- CSS3 - Styling, animations, responsive design
- Javascript (ES6+) - logic, components, and API integration
-
Frontend Framework
- React 18 - Component based UI development
- React Router DOM 17 - Client-side routing for multiple pages
-
Styling & UI
- Bootstrap 5 - layout and pre-built components
- Lucide React - Icon library
-
APIs & Data fetching:
- Axios - HTTP requests
- @react-google-maps/api - Google Maps rendering + geolocation
-
Testing
- React testing library
- Jest DOM
- User Event
-
Build Tools
- Create React App (react-scripts)
/IFQ666_react_web_assignment1
├── src
│ ├── API # API components (Github, Google Maps Javascript, NewsAPI, PicSum)
│ ├── assets # Public assets (icons, photos)
│ ├── features # Feature components
│ ├── pages # App pages (Home, About, Resume, Portfolio, Search, Photos)
│ ├── App.css # Global and component styles
│ ├── App.js # Main routing setup
│ ├── index.js # React entry point
├── LICENSE.txt # License file
├── package.json # Lists all project dependencies, scripts, and metadata for React
└── README.mdTo run this project locally:
-
Clone the repository:
git clone https://github.com/viettask/IFQ666_react_web_assignment1.git
-
Navigate into the project directory:
cd IFQ666_react_web_assignment1 -
Install dependencies:
npm install
-
Run the project:
npm start
- Google Maps JavaScript API
- React documentation
- Bootstrap documentation
- Online public APIs for project data
This project is licensed under the MIT License.