Stream Flow is a decentralized streaming platform built on the Solana blockchain. This platform allows users to create, manage, and interact with token streams in a seamless and efficient manner using streamflow-js-sdk.
- Create token streams
- Manage existing streams
- Cancel streams and withdraw tokens
- Interact with the Solana blockchain using streamflow-js-sdk
- Use React, TypeScript, and MUI for a modern UI & TailwindCSS
- Integrated with various Solana wallets
Follow these instructions to get the project up and running on your local machine for development and testing purposes.
Make sure you have the following installed:
- Node.js (version 16 or higher)
- npm (version 7 or higher)
- Clone the repository
git clone https://github.com/mehdi-torabiv/streamflow-test
cd streamflow-test- Install the dependencies
Using npm:
npm installTo start the development server:
npm run devThe application will be running at http://localhost:3000.
To create an optimized production build:
npm run buildTo start the production server:
npm startTo lint the code:
npm run lintTo fix linting issues:
npm run lint:fixTo format the code using Prettier:
npm run prettierThis project uses Husky and Lint-Staged to run linting and formatting checks before commits. To set up Husky, run:
npm run preparesrc/: Source code for the applicationapp/: Next.js pagescomponents/: React componentsconfigs/: Configuration filescontext/: Context providershelpers/: Helper functionshooks/: Custom hooksinterfaces/: TypeScript interfacesproviders/: Context providersservices/: Services for interacting with APIstypes/: TypeScript type definitionsutils/: Utility functions
- @mui/material: Material-UI components
- @tailwindcss TailwindCSS utility-first CSS framework
- @solana/web3.js: Solana web3 library
- @solana/wallet-adapter-react: Solana wallet adapter for React
- @streamflow/stream: Streamflow SDK
- react: React library
- next: Next.js framework
- typescript: TypeScript language
- eslint: Linting utility
- prettier: Code formatting tool
- husky: Git hooks
- tailwindcss: Utility-first CSS framework
There are a lot of improvements possible for this project. Some of them are:
- Wring unit test & integration tests.
- Implement E2E (End to End) tests for testing application flows.
- Configuring Error Boundary and use Error Tracking tools like Sentry.
- Dockerize application.
Feel free to contribute to this project by opening a pull request. For major changes, please open an issue first to discuss what you would like to change.
This project is licensed under the MIT License.
Made with ❤️ by Mehdi Torabi