Skip to content

MarianoArg/nftracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NFTracker

NFTracker Go and try the live version of NFTracker.

Intro

This project was bootstrapped with the Blues Stack by Remix.

What's in the stack

Besides the original Remix stack, this project is using:

Why this stack?

Remix is one of the most popular full-stack web frameworks nowadays. I never had a chance of trying it before, so I used this challenge as an oportunity to discover it. But this desition has it outcomes, every example and documentation of the Web3 tools used in this project was focused on NextJs, so some research was needed to make these tools to work.

Before this project, I had no idea at all (and I still don't lol) about Web3 and the tools used on these kind of projects, so after some research I found RainbowKit and Wagmi as some standars, and after some pitfalls I found the final results decent enough for this small demo.

In regards to the drag-&-drop functionallity, I find dnd-kit as the way to go nowadays, I used it before in some demos as well as in the last project I worked, with amazing results. So no doubt on what to use for this feature.

SWR and Radix were already part the Web3 tools dependencies used in this project, so I took advantage of those which are amazing tools and were a good fit for what I needed for this small project.

What about the design?

For this I did some research on web3 sites to understand a bit more about the patters used.

Development

  • Clone this repo and install its dependencies

    npm install
  • Start the Postgres Database in Docker:

    npm run docker

    Note: The npm script will complete while Docker sets up the container in the background. Ensure that Docker has finished and your container is running before proceeding.

  • Initial setup:

    npm run setup
  • Run the first build:

    npm run build
  • Start dev server:

    npm run dev

This starts the app in development mode, rebuilding assets on file changes.

If you'd prefer not to use Docker, you can also use Fly's Wireguard VPN to connect to a development database (or even your production database). You can find the instructions to set up Wireguard here, and the instructions for creating a development database here.

Relevant code:

This is a very simple platform that intends to help users group tokens into one Custom Collection that can be followed and monitored. The main functionality is logging it with your Etherum wallet, selecting any NFT collection you want, and pick the relevant tokens you would like to keep track of, creating custom collections. Collections can be updated and deleted at any time.

GitHub Actions

This project uses GitHub Actions for continuous integration and deployment. Anything that gets into the main branch will be deployed to production after running tests/build/etc.

Testing

This is a very simple app where most of the code belongs to libs already tested. Having said this, I do consider adding some e2e tests for the collections flows. My plan is to add some in the upcoming days (I ran out of time for personal reasons).

  • WIP e2e tests

Type Checking

This project uses TypeScript. It's recommended to get TypeScript set up for your editor to get a really great in-editor experience with type checking and auto-complete. To run type checking across the whole project, run npm run typecheck.

Linting

This project uses ESLint for linting. That is configured in .eslintrc.js.

Formatting

We use Prettier for auto-formatting in this project. It's recommended to install an editor plugin (like the VSCode Prettier plugin) to get auto-formatting on save. There's also a npm run format script you can run to format all files in the project.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published