This is the app that I quickly coded for one company that I applied to for a job of Senior React developer.
- clone this repo with git
- install dependencies
npm install
- run npm with
npm start
- open
localhost:3000
- Auth components with Firebase
- CRUD for timers with redux toolkit query
- Responsivness of the app and UI components with primerreact
- Start/stop timer with setInterval
- History page, Dashboard and 404 page with react router 6
- Typing with typescript
- Global state management with redux toolkit query
- Auth state management with context
- Reusable logic with custom react hooks
- Pagination for timers with paginator
- CSS utility classes with primeflex
- Theming with themeProvider
- Styled components to overwrite styles from prime react when needed.
The hardest part was injecting up to date data into prime react table. I had to rely on redux to get the latest state of the counter. These subcomponents in UI table are oblivious to the state.
I styled everything in 30 minutes so that was easy. But also CRUD methods with firebase. It is superb how firebase has all these helpers methods that we can just call as hooks.
- Filtering is not quite finished, you can filter by any data field, but you can not set start end end date
- I just did not have time to implement this even though it does not seem so difficult
- Styling is not pixel perfect, there are many subtle differences between the provided design and the result.
- Same like with filtering, even though styling is even a lesser challenge. I have done pixel perfect design many times but just did not have time to focus on that now.