📈 This project was developed for the XP Inc front-end technical challenge

Overview

Desafio técnico PSel - Turma XP 🚀

Esse projeto tem como objetivo desenvolver um aplicativo de investimento em ações, com algumas funcionalidades de conta digital

🖥 Link do deploy

Desenvolvido com 💙 por Rafael França 👨‍💻




💭 Abordagem do desafio

  • 🎯 Objetivos principais
    • Foco na experiência e intuição do cliente ao utilizar a aplicação.
    • Desenvolver uma interface bonita e responsiva para diversos dispositivos.
    • Utilizar uma base de dados para simular as ações do cliente.
    • Prover um ambiente em nuvem (deploy e base de dados) para o teste e desenvolvimento da aplicação se assemelhar a um case real.
    • Produzir código limpo e legível.
  • 🔌 Tomadas de decisão
    • Para criar a interface, foram utilizados os frameworks NextJS e o Tailwind CSS em conjunto com a biblioteca de componentes Daisy UI 💄 .
    • Com o objetivo de maximizar a experiência do cliente e validar as suas ações em tempo real, foi utilizado a biblioteca React Hook Form em conjunto com Yup para validação de formulários 🚨 .
    • O ambiente escolhido para armazenar as informações do cliente foi o Supabase, que oferece um acesso baseado em nuvem a um banco de dados PostgreSQL 🐘 .
    • A modelagem das entidades da base de dados e sua comunicação com as ações do cliente, foram realizadas com Prisma ORM e as API Routes do NextJS 🚀 .
    • No desenvolvimento de testes unitários, foi utilizado o framework Jest e a React Testing Library 🐙 .
  • 💻 Processo de desenvolvimento
    Foram utilizadas tecnologias auxiliares para o processo de desenvolvimento com o objetivo de padronização de commits, formatação e execução dos testes unitários relativos ao escopo das mudanças, prevenindo assim que uma nova feature impactasse no código base.
    • O desenvolvimento da aplicação foi dividido em três fases, sendo as duas últimas cíclicas:

      • 🏗️ Fase 1: Desenvolvimento de um boilerplate com as tecnologias a serem utilizadas na aplicação.
      • ⌨️ Fase 2 (Feature): Desenvolvimento da interface do usuário, posteriormente funcionalidades relativas aquele escopo e por fim testes unitários.
      • Fase 3: Testes manuais em ambiente de produção, correção e melhorias contínuas.



💻 Instruções de compilação e execução

  1. Esse projeto utiliza o pnpm como gerenciador de pacotes. Para instalá-lo, basta seguir esse passo a passo.

  2. Para rodar a aplicação é necessário um banco de dados Postgres. Para isso, recomendo que o faça com Docker ou simplesmente crie um projeto no Supabase - e copie a URI fornecida para seu .env 😄 (Settings -> Database -> Connection String -> URI).

  3. Clone o repositório do projeto:

    git clone [email protected]:rafaelmfranca/xp-technical-challenge.git
  4. Instale os pacotes

    cd xp-technical-challenge
    pnpm install
  5. Configure um arquivo .env conforme o .env.example na raiz do repositório.

    DATABASE_URL=postgres://USUÁRIO:SENHA@HOST:PORTA/NOME_DO_BANCO?schema=NOME_DO_SCHEMA
  6. Execute as migrações e seeders:

    pnpm prisma migrate dev
    pnpm prisma db seed

    Obs: No arquivo seed.ts é possível verificar as contas que estão elegíveis para fazer login 😁

  7. Execute o projeto:

    pnpm dev
You might also like...

Web-Technology with Aj Zero Coding. In this tutorial we learn front-end and back-end development.

Installation through NPM: The jQWidgets framework is available as NPM package: jQuery, Javascript, Angular, Vue, React, Web Components: https://www

Nov 19, 2022

Shopping Cart - Project of HTML, CSS, and JavaScript developed by me (Raphael Martins) at the end of the Unit 9 Module 1 of the Web Development course at Trybe

 Shopping Cart - Project of HTML, CSS, and JavaScript developed by me (Raphael Martins) at the end of the Unit 9 Module 1 of the Web Development course at Trybe

Project of HTML, CSS, and JavaScript developed by me (Raphael Martins) at the end of the Unit 9 Module 1 of the Web Development course at Trybe. I was approved with 100% of the mandatory and optional requirements met.

Nov 27, 2022

A collection of (mostly) technical things every software developer should know about

Join our community for professional Software Developers and get more control over your life and career! Every Programmer Should Know 🤔 A collection o

Jan 4, 2023

Technical indicators (TALib) written in typescript for deno.

Technical indicators (TALib) written in typescript for deno.

description cover coverY Technical Analysis written in Typescript for Deno .gitbook/assets/dylan-calluy-JpflvzEl5cg-unsplash.jpeg 0 🦕 deno-talib Inst

Aug 25, 2022

A Technical Blogging Website that utilizes Notion as a CMS for ease of modification with the help of the notion-API & whose content has been rendered with next-js and react-notion-x

A Technical Blogging Website that utilizes Notion as a CMS for ease of modification with the help of the notion-API & whose content has been rendered with next-js and react-notion-x

GDSC MCE Blogs This repo is what GDSC MCE uses to power their blogging website gdsc-mce-blogs. It uses Notion as a CMS, fetching content from Notion a

Dec 16, 2022

Frontend of thisisbac blog. Technical stack: Next.js, ReduxToolkit, TailwindCss,...

Introduction ThisisBac frontend services are responsible for all interface actions related to ThisisBac Blog with technical stack Next.js, Redux Toolk

May 15, 2022

Frontend of ecert. Technical stack: Next.js, ReduxToolkit, TailwindCss,...

Introduction ThisisBac frontend services are responsible for all interface actions related to ThisisBac Blog with technical stack Next.js, Redux Toolk

May 15, 2022

An interactive Bitcoin tutorial for orange-pilled beginners. Illustrates technical Bitcoin concepts using JavaScript and some Bitcoin Core RPC commands. Programming experience is helpful, but not required.

An interactive Bitcoin tutorial for orange-pilled beginners. Illustrates technical Bitcoin concepts using JavaScript and some Bitcoin Core RPC commands. Programming experience is helpful, but not required.

Try Bitcoin Try Bitcoin is an interactive Bitcoin tutorial inspired by and forked from Try Regex, which is inspired by Try Ruby and Try Haskell. It il

Nov 25, 2022
Personal Blog - a project developed with Angular for the front-end interface and Wordpress for the back-end API served with Docker containers

PersonalBlog This project was generated with Angular CLI version 13.0.1. Front-end Interface Development server Run ng serve or ng serve --configurati

null 9 Oct 5, 2022
Open source software from Lifecast Inc for immersive volumetric VR videos and photos.

Lifecast Inc. Open Source Lifecast makes software for immersive volumetric VR videos and photos. Lifecast's 6DOF format for 3D photos and videos can b

Forrest Briggs 15 Jan 1, 2023
The proposal of this repository is having a scaffold with some scenarios where you can challenge your front-end knowledge.

Frontend Kata / Interview ?? Hello developer! The proposal of this repository is having a scaffold with some scenarios where you can challenge your fr

Adrián Ferrera González 2 Nov 11, 2022
Hot-challenge-solving application for any coding challenge services.

✔️ Solv Hot-challenge-solving application for any coding challenge services. Introduction Solv [sɑːlv] is a cli application for solving coding challen

Sophia 8 Dec 13, 2022
Grupprojekt för kurserna 'Javascript med Ramverk' och 'Agil Utveckling'

JavaScript-med-Ramverk-Laboration-3 Grupprojektet för kurserna Javascript med Ramverk och Agil Utveckling. Utvecklingsguide För information om hur utv

Svante Jonsson IT-Högskolan 3 May 18, 2022
Hemsida för personer i Sverige som kan och vill erbjuda boende till människor på flykt

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

null 4 May 3, 2022
Kurs-repo för kursen Webbserver och Databaser

Webbserver och databaser This repository is meant for CME students to access exercises and codealongs that happen throughout the course. I hope you wi

null 14 Jan 3, 2023
It consists of a recreation of Twitter, to put into practice both Front-end and Back-end knowledge by implementing the MERN Stack together with other technologies to add more value to the project.

Twitter-Clone_Back-end ✨ Demo. ?? About the project. ?? Descriptions. It consists of a recreation of Twitter, to put into practice knowledge of both F

Mario Quirós Luna 5 Apr 12, 2022
It consists of a recreation of Twitter, to put into practice knowledge of both Front-end and Back-end implementing the MERN Stack along with other technologies to add more value to the project.

Twitter-Clone_Front-end ✨ Demo. Login Home Profile Message Notifications Deployed in: https://twitter-clone-front-end.vercel.app/ ?? About the project

Mario Quirós Luna 5 Jun 26, 2022
Pass trust from a front-end Algorand WalletConnect session, to a back-end web service

AlgoAuth Authenticate to a website using only your Algorand wallet Pass trust from a front-end Algorand WalletConnect session, to a back-end web servi

Nullable Labs 16 Dec 15, 2022