Welcome to my Blog App React project! This application was developed as part of the project challenges from the React Simplified beginner and advanced parts. It's a culmination of various concepts and challenges, including routing, API integration, form handling, testing, and loading animations.
To get started with the project, follow these steps:
- Clone the repository to your local machine.
- Navigate to the project directory.
- Install dependencies by running
npm install
in the root directory. - Start the fake API by navigating to the Api repo clone it and run
npm run dev
. - Start the React application by running
npm run dev
in the root directory.
This project was developed into multiple parts, each focusing on specific functionalities and enhancements. Here's a brief overview of each part:
- Implemented navigation bar with links to Posts, Users, and Todos pages.
- Rendered data from the provided API on respective pages.
- Implemented loading spinner, 404 error page, detailed error handling, and additional functionalities as bonus tasks.
- Added functionality for filtering, creating, and editing posts.
- Created New Post and Edit Post pages with form fields.
- Enhanced filtering options, improved form submission handling, and implemented form validations as bonus tasks.
- Practiced testing a larger-scale project with routing and API requests.
- Tested filtering functionality on the PostList page.
- Tested functionality of the NewPost page.
- Mocked the API for testing purposes.
- For runing the test you can run the
npm run test
command in the root directory.
- Implemented asynchronous routing with Suspense, defer, and Await.
- Added loading animations using deferred loaders to each page.
- Utilized provided CSS classes for implementing loading animations.
I've thoroughly enjoyed working on this project and implementing the various features and challenges it presented. This project has not only enhanced my React skills but also provided valuable experience in handling complex projects and integrating multiple concepts seamlessly.
Feel free to explore the project and suggest improvements. Happy coding!