Andybrummitt / crypto-compare

Crypto compare application with NextJS, Typescript and Styled Components
https://crypto-compare-one.vercel.app
0 stars 0 forks source link

Crypto Compare

About this project

This is a cryptocurrency application built in Typescript, NextJS and styled with the styled components library. The application accesses Crypto market and token data with the free coingecko API and utilises Supabase for authentication and database queries.

The project is hosted on Vercel.

Project Screenshots

markets-page trending-page compare-page compare-page2 portfolio-page

## How I organized this project I used a Figma community made design kit for styling inspiration [example](https://user-images.githubusercontent.com/57725070/219866826-c868ed24-b343-4a4a-88c7-6d82b97ca9c3.PNG). I structured my tasks with a Jira board [example](https://user-images.githubusercontent.com/57725070/219866834-a47c052f-a422-4cd7-911e-1ec9823b839d.PNG). ## How I built this project Authentication with useContext and supabase. Protected and unprotected routes with HOCs. This application fetches data from the coingeckoAPI and is mostly server-side rendered. Wrote integration tests using React Testing Library. ## Why I built the project in this way For authentication and auth state management I utilised supabase and react context hooks to avoid building a seperate node server which saved on build time. [I had previously built the backend of a full stack application from scratch](https://github.com/Andybrummitt/bug-tracker/tree/main/server) and felt that supabase could cover the needs for this application in a less verbose way. I used NextJS's built in server side rendering to improve page load and SEO for most of my API calls. This was not needed however in the portfolio section of the app as this is a behind protected route and would not require SEO. I wrote integration tests with React testing library, but due to time constraints did not write automated tests for the full application.