This is my pet project to practice receiving Ethereum payments using a smart contract. It involves developing the frontend, backend, infrastructure, and the smart contract itself. The project is fully deployed with automated pipelines for:
- Planning, creating, and destroying infrastructure using Terraform.
- Deploying the Next.js frontend, which utilizes Next.js server APIs.
- Deploying the Express.js backend and applying migrations on the RDS instance.
- Deploying the smart contract on the Ethereum network.
- Using LLMs to generate dynamic onboarding documents tailored to the user's situation.
- Sending transactional emails using nodemailer.
The project is organized into several key components:
- Language/Framework: Express, Sequelize, HuggingFace inference client, nodemailer, etc.
- Key Files:
app.js: The main application file.Dockerfile: Used for containerizing the backend application.package.json: Lists dependencies and scripts for the backend.
- Directories:
models/: Contains database models.routes/: Defines API routes.config/: Configuration files for the application.migrations/andseeders/: For database migrations and seeding.
- Usage of LLMs:
- The HuggingFace inference client generates tutorials for users in different countries, considering the availability of different exchanges.
- Language/Framework: Next.js
- Key Files:
Dockerfile: Used for containerizing the frontend application.package.json: Lists dependencies and scripts for the frontend.next.config.ts: Configuration for Next.js.
- Directories:
app/: Main application source code.public/: Static files.
- Tools: Terraform for infrastructure as code, Docker, AWS EC2, and RDS.
- Key Files:
ec2.tf,rds.tf: Terraform configuration for AWS resources.ec2setup.sh: Script for setting up EC2 instances.provider.tf: Specifies the provider configuration.
- Tools: Solidity, Foundry, Etherscan for verification.
- Key Files:
src/: Contains smart contract source files.test/: Contract test files.
- Workflows:
deploy-infra.yml: Terraform workflow for infrastructure deployment.deploy-backend.yml: Backend deployment workflow.deploy-frontend.yml: Frontend deployment workflow.deploy-contract.yml: Smart contract deployment workflow.
- Domain Registration: NameCheap for domain registration and management.
- DNS and SSL: CloudFlare for DNS management and SSL certificates.
- Key Features:
- Free SSL certificates through CloudFlare.
- DDoS protection.