zC4sTr0 / desafio-qrcapital

React/NodeJS Full Stack Dev Challenge - QR Capital

Home Page:http://www.gabrielcastro.codes

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

QR-LOGO

Solution for the QR Capital Challenge

A simple and elegant website to select and track your favorite cryptocurrencies

Quick links for interviewers:
This program was built with ❤︎ by Gabriel Castro

Preview

QR-PREVIEW-DASHBOARD

QR-PREVIEW-REGISTER

Features

  • Easy run: Dockerized for your convienience and value of your time ❤

  • Individual user accounts - Have your own Dashboard

  • Beautiful and responsive layout

  • Cryptocurrency search & track using CryptoCompare API

  • Get the 24-hours price change in any currency! Updated on each 5 seconds.

How to run

I deployed this application on DigitalOcean using ci/cd! If you want to test the application, just enter this website: http://gabrielcastro.codes/

To run this applications, you must have Docker installed in your computer.

Read more about how to Install Docker here: Docker Installation Guide

If you already have docker installed and running, all you have to do is clone this repository, open terminal/bash and write the docker compose up command:

Docker compose up --build

After the containers are created, you can access the application using the following link: http://localhost:3000/

Competences

There are several hard skills which I want to prove I have in this challenge:

  • NodeJS/React Stack

This program is made using NodeJS in the back-end and React in front-end.

I have already done other servers for games in my years of experience in full-stack development using many frameworks in my company (Gunbound GITZ) and this challenge allowed me to show a good understanding about how software works.

  • Sessions

I made my own server-side sessions implementation, which was inspired by the same solution I made in other projects.

This solution stores a session cookie in the database and browser and uses it as authentication. It's implemented in a way that allows further control of sessions for the user, storing in the database information about the session such as IP, browser, and OS. This approach allows the creation of a page where the user can see all sessions and remove specific sessions. Similar to what is done in modern apps such as Facebook and others.

  • Understanding of Cybersecurity for any software

I want to show in this challenge that I have a good understanding about security-related practices while building a full stack app because I used to exploit them in order to make gamehacking when I was young. Since a very young age, I was a cheater(in online games) and this helped me to have a decent knowledge about which verifications must be in backend and which should'nt.

For online games, the choose of which verification should be on front or back-end is a very important skill in order to create a secure app (the best security is the code). That's a knowledge that is true to any software (not only games) and that's the competence I want to show here: I'm capable of see when the software have inconsistent checks on frontend and when the backend shouldn't trust the client.

  • Fluent english writing/reading skills

I have years of experience working with multicultural teams in asynchronous chats.

The main language of the challenge is english-only to show my experience on creating software and documentations in english language so anyone can contribute and do maintenance.

  • Automated test coverage and Test-driven development

I am already used to think a lot before writing any code.

This program was made using TDD/BDD/DDD methodology and I used Jest to create the tests.

  • High level of adaptability and very fast learning curve

I'm used to adapt myself.

This solution is a complete solution to show my high level of adaptability and very fast learning curve. I accomplished every single topic of the challenge to prove that I can learn fast in order to deliver a project. I've done this many times in my company, and like any entrepreneur, I had to learn a lot very fast.

  • SQL (PostgreSQL)

As mentioned in the challenge rules, we used postgreSQL for database.

I have more than 10 years of experience working with SQL in many databases(mySQL, SQL Server, PostgreSQL, etc).

  • Software design patterns (MVC, SOLID, etc)

  • Conventional commits

About me

I'm Gabriel Castro and I love coding softwares!

I'm a Lifelong learner, software developer, I study economy, blockchains, tech, astronomy and history. Intelectually generalist, I have interests in many fields of science.

I talk about Bitcoin, web3, and economy on my twitter:

c4str0

My twitter is worth to check since it has 2 years of recorded proofs of my true love about economy, bitcoin and my own travel through the bitcoin's rabbit hole.

Connect with me:

c4str0https://www.linkedin.com/in/gabriel-castro-sodre/

Languages and Tools:

react nodejs postgresql javascript jest express docker c cplusplus git graphql html5 java mongodb mysql oracle tailwind typescript

About

React/NodeJS Full Stack Dev Challenge - QR Capital

http://www.gabrielcastro.codes


Languages

Language:JavaScript 98.5%Language:HTML 0.9%Language:Dockerfile 0.6%Language:CSS 0.1%