This is a single-page application developed using React, Redux, and other technologies to create a bookstore. The application allows users to view a list of books, add new books, modify book details, and delete books.
- React: JavaScript library for building user interfaces.
- Redux: State management library for managing application state.
- Tailwind CSS: Utility-first CSS framework for rapidly building custom designs.
- DaisyUI: Tailwind CSS component library.
- Webpack: Module bundler for optimizing and bundling application code.
- Express: Minimal and flexible Node.js web application framework used for serverless deployment, showcasing configuration skills.
- TypeScript: Typed superset of JavaScript for enhanced code quality and maintainability.
- GitHub Actions: Continuous Integration (CI) workflow for automating the build and deployment process.
- Vercel: Serverless deployment platform for deploying the application to a public domain.
- io-ts: Library for runtime type checking of JSON payloads.
- fp-ts: Functional programming library for TypeScript.
- ts-pattern: Library for pattern matching in TypeScript.
- eslint: Linting tool for identifying and fixing code style issues.
- prettier: Code formatter for maintaining a consistent code style.
- react-hook-form: Library for efficient form handling in React.
The application uses a simplified useElm
library to implement Elm-style architecture (Model-View-Controller) in TypeScript and React. This approach separates the model, view, and controller for better testing and maintainability.
- io-ts: Utilized for form validation to ensure input and output JSONs have the correct schema, enhancing data integrity and consistency.
The application is hosted on a public domain: blazesoft.medy.dev.
- Express: Chose Express over frameworks like Next.js to demonstrate skills in configuring webpack and serverless architecture. This choice allows for custom server configurations and showcases proficiency in advanced setups.
- Clone the repository.
git clone https://github.com/3ripleM/blazesoft_interview
cd blazesoft_interview
- install dependencies
yarn install
- build and run the applicatin
yarn build
yarn start