Student Coin Logo

CASE STUDY

Build and manage your own token.

    Overview

    Student Coin is the first platform that allows users to easily design, create, and manage personal, corporate, NFT, and DeFi tokens. The platform connects students and organisations from over 500 of the world’s best universities.

    Project Name

    Student Coin

    Services

    Blockchain Development, Frontend, Backend, Product Design

    Type

    Blockchain Platform

    Industry

    blockchain

    Frontend

    For the frontend application, we used ReactJS with TypeScript and Ant Design visual components. We prepared all the typical user management pages allowing users to create accounts, log in, recover accounts and verify their email.

    The next step was to prepare a token creation form, which allowed logged in users to familiarize themselves with possible token options such as type, decimals, vesting and sale configuration. They could then select settings that best fit their scenario, and deploy the contract generated accordingly to the blockchain network. This required an integration of a React application with popular wallets so that users could use their browser extension (Metamask) or mobile application (WalletConnect) to approve blockchain transactions generated by the app.

    The final step was the creation of a dashboard page, where the user can track state and statistics of his token, as well as interact with Smart Contracts that handle it. Statistics displayed in multiple tables were fetched from the backend, and all contract interactions used an ethers library to call the methods of deployed token contracts.

    Backend

    The backend was created in NodeJS with an express package. It's main purpose is to provide the frontend application with all information about created tokens.

    First, we created the services responsible for authorizing and managing user sessions. They will later be integrated with Student Coin's services, so that they share the same database of users.

    The second step was storing all token settings in the frontend application using the Postgres database, as well as some additional metadata regarding blockchain deployment status. All this data could be then retrieved by the frontend.

    Lastly, a service was built to cache token transactions. It queries the blockchain periodically, and stores the transactions and account balances in the database for easier and quicker querying.

    Blockchain

    For writing smart contracts we used the Hardhat framework, Waffle testing suite and OpenZeppelin libraries. We prepared a main factory contract connected with multiple specific factories that were deploying individual components.

    The ERC20 token was mostly based on OpenZeppelin implementation - but it was extended to allow dynamic configuration by passing arguments in the constructor.

    All other contracts are heavily inspired by OpenZeppelin and even include a lot of its utilities. The Crowdsale contract was created based on the OpenZeppelin Crowdsale V2 reference - the legacy version that was updated to fit current Solidity runtime.

    All contracts are unit tested by using builtin ethers.js and underwent an intensive internal Q&A process - but note that a proper security audit has not yet been performed and it is recommended as a must have before going to mainnet.

    DevOps

    As we were starting from the beginning with the infrastructure, the first step of the solution was to analyse what elements would fit best for the blockchain nature of the application.

    The second step was to create all the needed elements of the planned 2 environments and configure it to meet our required expectations. Among other things, this meant preparing terraform code with terragrunt for EKS cluster and all K8S manifests needed, RDS database and required accesses. When the setup was complete, the final step was to prepare a full CI / CD automation process for the application deployment.

    For that, a combination of GitHub Actions + ArgoCD was used. During project development, there was also priority for debugging all infrastructure based problems, and enhancing / modifying the infrastructure to suit new features and changes.

    Design

    We began with a scoping workshop featuring the entire Student Coin team. We created user story maps and user flow diagrams, and later followed these up with more detailed wireframes. From these, we designed a dashboard and token form wizard, a landing page, 3D animations and icons, giving the Student Coin brand a unique look and feel.

    Start a Project with 10Clouds

    Contact Us

    See more case studies