This project is a web application built with Next.js 14 for server-side rendering and static site generation, styled using Tailwind CSS, and configured as a Progressive Web Application (PWA) using Serwist. The app is developed with TypeScript for type safety and integrates Web3.js for blockchain interactions.
The project includes a CI/CD pipeline configured using GitHub Actions and is containerized with Docker (or Podman) for consistent and reliable deployments. End-to-end tests are automated using Playwright to ensure the application functions as expected across various scenarios.
Clone the repository:
git clone https://github.com/your-repository.git
cd your-repository
Install the necessary dependencies:
npm install
Run the development server:
npm run dev
To build and run the application for production:
Build the app:
npm run build
Start the production server:
npm run start
The project is configured to work as a Progressive Web App using Serwist. This ensures offline capabilities and a mobile-first, installable experience.
This project integrates Web3.js for blockchain-related interactions. Ensure you have the proper blockchain environment and node configurations when using Web3 functionalities.
The project uses GitHub Actions to automate the deployment process. On every push to the main
branch, the following steps occur:
This ensures the application is always up-to-date with minimal manual intervention.
The application can be containerized using Docker or Podman. The container setup ensures that the app runs in a lightweight, consistent environment across all machines.
Build the Docker image:
docker build -t blockchain-front .
Run the container:
docker run -d --name blockchain-front -p 3024:3000 blockchain-front
The application will be available at http://localhost:3024
.
node:alpine
for a lightweight environment.nextjs
is created to run the app.End-to-end tests are performed using Playwright to ensure core functionalities are working correctly. To run the tests locally:
npx playwright test
The tests are configured to run across different browsers and devices, simulating real-world usage scenarios.
The project documentation is generated automatically using Typedoc. You can generate and view the documentation as follows:
Run the Typedoc command:
npx typedoc
The generated documentation will be available in the docs
directory.