
Complete rewrite from Python/FastAPI to Node.js stack: Features implemented: - User authentication with JWT tokens and role-based access (DEVELOPER/BUYER) - Blockchain wallet linking and management with Ethereum integration - Carbon project creation and management for developers - Marketplace for browsing and purchasing carbon offsets - Transaction tracking with blockchain integration - Comprehensive input validation with Joi - Advanced security with Helmet, CORS, and rate limiting - Error handling and logging middleware - Health check endpoint with service monitoring Technical stack: - Node.js with Express.js and TypeScript - Prisma ORM with SQLite database - Web3.js and Ethers.js for blockchain integration - JWT authentication with bcrypt password hashing - Comprehensive validation and security middleware - Production-ready error handling and logging Database schema: - Users with wallet linking capabilities - Carbon projects with verification status - Carbon offsets with blockchain token tracking - Transactions with confirmation details Environment variables required: - JWT_SECRET (required) - DATABASE_URL (optional, defaults to SQLite) - BLOCKCHAIN_RPC_URL (optional, defaults to localhost) - NODE_ENV, PORT, CORS_ORIGIN (optional) Run with: npm install && npm run db:generate && npm run db:migrate && npm run dev
18 lines
386 B
Plaintext
18 lines
386 B
Plaintext
# Application Configuration
|
|
NODE_ENV=development
|
|
PORT=8000
|
|
JWT_SECRET=your-jwt-secret-key-change-in-production
|
|
|
|
# Database Configuration
|
|
DATABASE_URL="file:./storage/db/database.db"
|
|
|
|
# Blockchain Configuration
|
|
BLOCKCHAIN_RPC_URL=http://localhost:8545
|
|
ETHEREUM_NETWORK=localhost
|
|
|
|
# CORS Configuration
|
|
CORS_ORIGIN=*
|
|
|
|
# Rate Limiting
|
|
RATE_LIMIT_WINDOW_MS=900000
|
|
RATE_LIMIT_MAX_REQUESTS=100 |