An open API service indexing awesome lists of open source software.

https://github.com/codeslator/webtroniclabs-test

WebtronicLabs technical test created with React + TypeScript + VIte + Redux + TailwindCSS
https://github.com/codeslator/webtroniclabs-test

Last synced: 5 months ago
JSON representation

WebtronicLabs technical test created with React + TypeScript + VIte + Redux + TailwindCSS

Awesome Lists containing this project

README

          

# webtroniclabs-test

## Technical Test by WebtronicLabs - @codeslator (Andres Melendez)

### npm
```
npm install
```

## Run
```
npm run dev
```

## Features

- React 18 + Vite + TypeScript
- Tailwind CSS
- Custom UI Layout
- Persisted data in Redux Store + Redux Toolkit
- Routing with React Router DOM v6
- Resposive Design (Mobile first)
- JavaScript Fetch API to make requests
- Custom Hooks (useAuth, usePokemon, useTodo, useUI)
- Pokemon Page
- Browser theme (light/dark)

## Dependencies

- Redux Toolkit + React Redux -> To persist and handle data in a global store;
- Tailwind -> Provide multiple classes to use in UI development;
- Router DOM -> Allow handle the app routing;

## API's

- PokeAPI -> https://pokeapi.co/
- Todos -> https://jsonplaceholder.typicode.com/

## Tasks

- Create a React project ✅
- Use Flexbox ✅
- Create 3 components ✅
- Create routing ✅
- Configure routes for the 3 components ✅
- Add HTML navigation bar to route to each view ✅
- Add a user login form (just the user name) ✅
- Save user name to session storage ✅
- Add a guard and prevent a user from navigating unless session storage with the user name exists ✅
- Add HTTP interceptor and add 'Content-Type: application/json' to header ✅
- Read API path from environments file ✅
- Add a service that makes the following HTTP GET requests (Use Promises or RxJs) ✅
- Make use of that service in a new view ✅
- Display the title and completed status as a list ✅
- Add CSS class to differentiate between completed status ✅
- Use Redux or React Context to manage state ✅
- You can add your own spice to the project as you like ✅✅✅