pyrenaicus / neobanks

Nuwe CaixaBankTech React Cross-Platform Challenge πŸš€

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Nuwe CaixaBankTech React Cross-Platform Challenge

This is my response to the Nuwe & CaixaBank Tech challenge. The objective is to build a mobile & web cross platform in React, following the design given in Figma

figma design

We should build the components for a mobile web app and for a dashboard. So far I've been able to build the web app using ReactJS, Typescript, and Recharts, a React composable charting library for the graphics.

Installation

Clone this repo, cd into newly created dir and install dependencies

git clone git@github.com:pyrenaicus/neobanks.git
cd neobanks
yarn

If you want to follow all the steps to build it from scratch, do:

  1. Create a React app with Typescript template:
npx create-react-app neobanks --template typescript
  1. Install Recharts library:
yarn add recharts
  1. You will need as well to install react-icons
yarn add react-icons

Result

You can see a live demo here: neobank.surge.sh

my result

To build the app I followed an Atomic design methodology. Using this approach allows us to break our components into smaller units that can be developed and tested in isolation, and it helps to keep our directories in order as things scale up.

β”œβ”€β”€ components
β”‚   β”œβ”€β”€ atoms
β”‚   β”‚   β”œβ”€β”€ IconBarchart.tsx
β”‚   β”‚   β”œβ”€β”€ IconBattery.tsx
β”‚   β”‚   β”œβ”€β”€ IconCompass.tsx
β”‚   β”‚   β”œβ”€β”€ IconSignal.tsx
β”‚   β”‚   β”œβ”€β”€ IconUser.tsx
β”‚   β”‚   β”œβ”€β”€ IconWifi.tsx
β”‚   β”‚   └── Time.tsx
β”‚   β”œβ”€β”€ molecules
β”‚   β”‚   β”œβ”€β”€ AppHeader.tsx
β”‚   β”‚   β”œβ”€β”€ PhoneStatus.tsx
β”‚   β”‚   └── PhoneVitals.tsx
β”‚   └── organisms
β”‚       β”œβ”€β”€ InfoBox.tsx
β”‚       β”œβ”€β”€ MainSection.tsx
β”‚       β”œβ”€β”€ MenuBar.tsx
β”‚       β”œβ”€β”€ SectionHeader.tsx
β”‚       β”œβ”€β”€ TransactionsGraphic.tsx
β”‚       └── TransactionsInfo.tsx

Roughly, the app is composed by a series of components, a PhoneStatus on top showing on one side current time, and on the other a series of phone vitals, Time and PhoneVitals components.

Below PhoneStatus is an AppHeadercomponent, and in the bottom we find the MenuBar component.

In between them we find the MainSection component, it holds what we could say all the data-driven components of the app.

Right now is a mockup, and we are passing hardcoded data by props to the components.

A SectionHeader component showing a headline and a subheadline.

Below it a TransactionsInfo component, holding two InfoBox components.

And right below it, TransactionsGraphic, the largest component, holding a line chart built with Recharts and showing a view of transactions over time, with tabbed views.

dummy box

Stack used

Author

Pau Guerrero

License

This project is licensed under the MIT License

About

Nuwe CaixaBankTech React Cross-Platform Challenge πŸš€

License:MIT License


Languages

Language:TypeScript 50.6%Language:CSS 32.1%Language:HTML 17.2%