Skip to content

A powerful tool that allows users to rate and evaluate cryptocurrencies using the familiar "upvote" and "downvote" system.

License

Notifications You must be signed in to change notification settings

peterfritz/coinrank

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CoinRank API


The CoinRank API is a powerful tool that allows users to rate and evaluate cryptocurrencies using the familiar "upvote" and "downvote" system.

Project developed as part of a talent selection/recruitment process for Klever.




Deploy

Spin up your own instance of the CoinRank API using Vercel and Railway with just two clicks.



Documentation / Endpoints

The API's request/response structure and the available endpoints are fully documented using the OpenAPI specification. You can explore it here or by following the link bellow.



The stack

Back-end

The back-end is written in Go, uses Gin as its HTTP framework and is fully CORS compliant thanks to Gin's CORS middleware. The API's endpoints and methods are tested using Testify. The database chosen was MongoDB beacause of its ease of use, pricing and performance.

Front-end

The front-end is written in Typescript and uses React, Next.js and SWR under the hood to increase performance, accessibility and maintainability. The styles and animations are made with Mantine and Framer Motion. All the icons were provided by Font Awesome through React Icons.


Development

  1. Clone the repository running git clone https://github.com/peterfritz/coinrank.git, git clone [email protected]:peterfritz/coinrank.git or gh repo clone peterfritz/coinrank depending on your setup.
  2. Open the directory cloned running cd coinrank.
  3. Run the database, the back-end, and the front-end using docker-compose up -d.
  4. Open a new tab on your browser and navigate to http://localhost:80/. If everything worked you should be able to see the application running.

Note

The front-end uses the port 80 and the back-end uses the port 8080.