Build and manage your own token.
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.
Student Coin uses the STC Token. This is a reference currency for all tokens in the network. By holding STC, the investor is holding part of every token ever created with the Student Coin.
The ICO of Student Coin was a huge success, generating $28 million in its set time.
Services
Our challenge
Student Coin came to 10Clouds for support with building the entire frontend and backend of its product, complete with UX and product design.
The goal of the platform is to allow users to control their personalized tokens as easily as a social media platform.

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.

Check other case studies
ETS Language Muse
Language Muse is an NLP-based educational platform for teachers working with U.S. students who face the challenge of learning English as their second language.

TimeION
TimeION simplifies the time off request policy and makes the experience pleasurable for both employees and managers.

GoSeqIt
10Clouds provided a platform that allows conducting DNA analysis through the internet, from any place on Earth. It computes and stores all data in the cloud and generates legible reports.

Zapp RideShare
Zapp RideShare is an electric scooter rental service operated with a mobile app. Our team is responsible for the complete product makeover.
