- Project Overview
- Build and Run Instructions
- Engineering and Testing Methodology
- Project Packaging Layout
- Dependency Attribution
This project is a Roman Numeral Converter built with React. It includes two distinct implementations:
- Custom Converter Component - A standard component with a light/dark mode toggle.
- React Spectrum-Based Component - Utilizes Adobe React Spectrum for theme auto-detection.
The project also integrates performance monitoring using web-vitals
and logs metrics to a backend server.
- Node.js (version 18 or later recommended)
- npm (comes bundled with Node.js)
- Clone the Repository
git clone https://github.com/yashatre98/React-Roman-numerals.git cd React-Roman-numerals
- Install Dependencies
npm install
- Run the local server
npm run dev
- Access the application
http://localhost:5173
- Component Design:
Converter.jsx
- Implements the primary Roman numeral converter with a toggleable theme button.SpectrumConverter.jsx
- Uses React Spectrum for theme-aware rendering without manual toggling.
- Performance Monitoring:
- Implemented in
vitals.js
using the web-vitals library. Metrics such as CLS, LCP, FCP, and TTFB are sent to the backend using Axios.
- Implemented in
- Responsiveness:
- Both components are styled for optimal viewing on various screen sizes.
- Unit Testing:
Converter.test.jsx
validates the core converter functionality.SpectrumConverter.test.jsx
tests the behavior of the Spectrum-based component.
- Automation:
- Tests are executed using Jest and React Testing Library.
