Skip to content

Latest commit

Β 

History

History
431 lines (387 loc) Β· 17.8 KB

File metadata and controls

431 lines (387 loc) Β· 17.8 KB

SkillProof - Complete File Structure

AI + Blockchain Hiring Trust Platform - "The Trust Layer for Remote Hiring"

πŸ“ Project Overview

This is a monorepo containing three main packages:

  • Frontend: Next.js 14 application (React, TypeScript, styled-components)
  • Backend: NestJS API (Node.js, TypeScript, PostgreSQL)
  • AI Service: Python/FastAPI service for AI-powered interviews

🌳 Complete Directory Structure

SkillProof/
β”‚
β”œβ”€β”€ πŸ“„ package.json                    # Root monorepo configuration
β”œβ”€β”€ πŸ“„ package-lock.json               # Dependency lock file
β”œβ”€β”€ πŸ“„ .gitignore                     # Git ignore rules
β”œβ”€β”€ πŸ“„ .prettierrc                    # Code formatting configuration
β”œβ”€β”€ πŸ“„ docker-compose.yml             # Docker services (PostgreSQL, Redis)
β”œβ”€β”€ πŸ“„ README.md                      # Project overview and documentation
β”œβ”€β”€ πŸ“„ FILE_STRUCTURE.md              # This file - complete structure
β”‚
β”œβ”€β”€ πŸ“ App_Flow/                      # Application workflow documentation
β”‚   β”œβ”€β”€ APP_FLOW_BREAKDOWN.md        # Flow structure breakdown
β”‚   β”œβ”€β”€ APP_FLOW_PART1.md            # Part 1: Landing, Auth, Candidate, AI Interview
β”‚   β”œβ”€β”€ APP_FLOW_PART2.md            # Part 2: Blockchain, Public Profile, Employer
β”‚   └── APP_FLOW_PART3.md            # Part 3: Error Handling, User Journeys, Data Flow
β”‚
β”œβ”€β”€ πŸ“ packages/                      # Monorepo packages
β”‚   β”‚
β”‚   β”œβ”€β”€ πŸ“ frontend/                  # Next.js 14 Frontend Application
β”‚   β”‚   β”œβ”€β”€ πŸ“„ package.json           # Frontend dependencies
β”‚   β”‚   β”œβ”€β”€ πŸ“„ tsconfig.json          # TypeScript configuration
β”‚   β”‚   β”œβ”€β”€ πŸ“„ next.config.js         # Next.js configuration
β”‚   β”‚   β”œβ”€β”€ πŸ“„ next-env.d.ts          # Next.js type definitions
β”‚   β”‚   β”œβ”€β”€ πŸ“„ .env.local            # Environment variables (local)
β”‚   β”‚   β”œβ”€β”€ πŸ“„ .env.example           # Environment variables template
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ πŸ“ src/                   # Source code
β”‚   β”‚   β”‚   β”‚
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ app/               # Next.js App Router pages
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ layout.tsx     # Root layout with providers
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ page.tsx       # Landing page (/)
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ globals.css    # Global styles
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ registry.tsx  # Styled-components SSR registry
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ not-found.tsx  # 404 error page
β”‚   β”‚   β”‚   β”‚   β”‚
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ login/         # Login page
β”‚   β”‚   β”‚   β”‚   β”‚   └── πŸ“„ page.tsx
β”‚   β”‚   β”‚   β”‚   β”‚
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ signup/        # Signup page
β”‚   β”‚   β”‚   β”‚   β”‚   └── πŸ“„ page.tsx
β”‚   β”‚   β”‚   β”‚   β”‚
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ dashboard/     # Dashboard pages
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ candidate/
β”‚   β”‚   β”‚   β”‚   β”‚   β”‚   └── πŸ“„ page.tsx
β”‚   β”‚   β”‚   β”‚   β”‚   └── πŸ“ employer/
β”‚   β”‚   β”‚   β”‚   β”‚       └── πŸ“„ page.tsx
β”‚   β”‚   β”‚   β”‚   β”‚
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ profile/       # Profile pages
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ page.tsx   # Profile settings
β”‚   β”‚   β”‚   β”‚   β”‚   └── πŸ“ public/
β”‚   β”‚   β”‚   β”‚   β”‚       └── πŸ“„ page.tsx
β”‚   β”‚   β”‚   β”‚   β”‚
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ interview/     # Interview flow
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ [sessionId]/
β”‚   β”‚   β”‚   β”‚   β”‚   β”‚   └── πŸ“„ page.tsx
β”‚   β”‚   β”‚   β”‚   β”‚   └── πŸ“ results/
β”‚   β”‚   β”‚   β”‚   β”‚       └── πŸ“ [sessionId]/
β”‚   β”‚   β”‚   β”‚   β”‚           └── πŸ“„ page.tsx
β”‚   β”‚   β”‚   β”‚   β”‚
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ verify-skill/ # Start verification
β”‚   β”‚   β”‚   β”‚   β”‚   └── πŸ“„ page.tsx
β”‚   β”‚   β”‚   β”‚   β”‚
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ features/     # Marketing pages
β”‚   β”‚   β”‚   β”‚   β”‚   └── πŸ“„ page.tsx
β”‚   β”‚   β”‚   β”‚   β”‚
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ pricing/
β”‚   β”‚   β”‚   β”‚   β”‚   └── πŸ“„ page.tsx
β”‚   β”‚   β”‚   β”‚   β”‚
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ how-it-works/
β”‚   β”‚   β”‚   β”‚   β”‚   └── πŸ“„ page.tsx
β”‚   β”‚   β”‚   β”‚   β”‚
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ about/
β”‚   β”‚   β”‚   β”‚   β”‚   └── πŸ“„ page.tsx
β”‚   β”‚   β”‚   β”‚   β”‚
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ blog/
β”‚   β”‚   β”‚   β”‚   β”‚   └── πŸ“„ page.tsx
β”‚   β”‚   β”‚   β”‚   β”‚
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ careers/
β”‚   β”‚   β”‚   β”‚   β”‚   └── πŸ“„ page.tsx
β”‚   β”‚   β”‚   β”‚   β”‚
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ help/
β”‚   β”‚   β”‚   β”‚   β”‚   └── πŸ“„ page.tsx
β”‚   β”‚   β”‚   β”‚   β”‚
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ contact/
β”‚   β”‚   β”‚   β”‚   β”‚   └── πŸ“„ page.tsx
β”‚   β”‚   β”‚   β”‚   β”‚
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ privacy/
β”‚   β”‚   β”‚   β”‚   β”‚   └── πŸ“„ page.tsx
β”‚   β”‚   β”‚   β”‚   β”‚
β”‚   β”‚   β”‚   β”‚   └── πŸ“ terms/
β”‚   β”‚   β”‚   β”‚       └── πŸ“„ page.tsx
β”‚   β”‚   β”‚   β”‚
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ components/        # React components
β”‚   β”‚   β”‚   β”‚   β”‚
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ ui/            # Reusable UI components
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ Button.tsx
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ Card.tsx
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ Input.tsx
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ Badge.tsx
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ Modal.tsx
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ Toast.tsx
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ Select.tsx
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ LoadingSpinner.tsx
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ ProgressBar.tsx
β”‚   β”‚   β”‚   β”‚   β”‚   └── πŸ“„ Tabs.tsx
β”‚   β”‚   β”‚   β”‚   β”‚
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ layout/        # Layout components
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ Header.tsx
β”‚   β”‚   β”‚   β”‚   β”‚   └── πŸ“„ Footer.tsx
β”‚   β”‚   β”‚   β”‚   β”‚
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ interview/     # Interview-specific components
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ CodeEditor.tsx
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ QuestionDisplay.tsx
β”‚   β”‚   β”‚   β”‚   β”‚   └── πŸ“„ TestResults.tsx
β”‚   β”‚   β”‚   β”‚   β”‚
β”‚   β”‚   β”‚   β”‚   └── πŸ“ blockchain/    # Blockchain/NFT components
β”‚   β”‚   β”‚   β”‚       β”œβ”€β”€ πŸ“„ NFTBadge.tsx
β”‚   β”‚   β”‚   β”‚       β”œβ”€β”€ πŸ“„ WalletConnect.tsx
β”‚   β”‚   β”‚   β”‚       └── πŸ“„ VerificationStatus.tsx
β”‚   β”‚   β”‚   β”‚
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ theme/             # Design system
β”‚   β”‚   β”‚   β”‚   └── πŸ“„ theme.ts       # Colors, typography, spacing, etc.
β”‚   β”‚   β”‚   β”‚
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ lib/               # Utilities and helpers
β”‚   β”‚   β”‚   β”‚   └── πŸ“„ api.ts         # API client with interceptors
β”‚   β”‚   β”‚   β”‚
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ store/             # State management (Zustand)
β”‚   β”‚   β”‚   β”‚   └── πŸ“„ authStore.ts   # Authentication state
β”‚   β”‚   β”‚   β”‚
β”‚   β”‚   β”‚   └── πŸ“ types/             # TypeScript type definitions
β”‚   β”‚   β”‚       └── πŸ“„ index.ts        # Shared types (User, Profile, etc.)
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ πŸ“ .next/                 # Next.js build output (generated)
β”‚   β”‚   └── πŸ“ node_modules/          # Frontend dependencies
β”‚   β”‚
β”‚   β”œβ”€β”€ πŸ“ backend/                   # NestJS Backend API
β”‚   β”‚   β”œβ”€β”€ πŸ“„ package.json           # Backend dependencies
β”‚   β”‚   β”œβ”€β”€ πŸ“„ tsconfig.json          # TypeScript configuration
β”‚   β”‚   β”œβ”€β”€ πŸ“„ nest-cli.json          # NestJS CLI configuration
β”‚   β”‚   β”œβ”€β”€ πŸ“„ .env                   # Environment variables
β”‚   β”‚   β”œβ”€β”€ πŸ“„ .env.example           # Environment variables template
β”‚   β”‚   β”œβ”€β”€ πŸ“„ .prettierrc            # Code formatting
β”‚   β”‚   β”œβ”€β”€ πŸ“„ .eslintrc.js           # ESLint configuration
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ πŸ“ src/                   # Source code
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ main.ts            # Application entry point
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ app.module.ts      # Root module
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ app.controller.ts  # Root controller
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ app.service.ts     # Root service
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ data-source.ts     # TypeORM data source
β”‚   β”‚   β”‚   β”‚
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ database/           # Database module
β”‚   β”‚   β”‚   β”‚   └── πŸ“„ database.module.ts
β”‚   β”‚   β”‚   β”‚
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ users/             # User management module
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ entities/
β”‚   β”‚   β”‚   β”‚   β”‚   └── πŸ“„ user.entity.ts
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ dto/           # Data Transfer Objects (to be created)
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ controllers/   # Controllers (to be created)
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ services/      # Services (to be created)
β”‚   β”‚   β”‚   β”‚   └── πŸ“ users.module.ts # Module definition (to be created)
β”‚   β”‚   β”‚   β”‚
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ auth/              # Authentication module (to be created)
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ strategies/    # Passport strategies
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ guards/        # Auth guards
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ decorators/    # Custom decorators
β”‚   β”‚   β”‚   β”‚   └── πŸ“ auth.module.ts
β”‚   β”‚   β”‚   β”‚
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ candidates/        # Candidate module (to be created)
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ entities/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ dto/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ controllers/
β”‚   β”‚   β”‚   β”‚   └── πŸ“ services/
β”‚   β”‚   β”‚   β”‚
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ employers/         # Employer module (to be created)
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ entities/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ dto/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ controllers/
β”‚   β”‚   β”‚   β”‚   └── πŸ“ services/
β”‚   β”‚   β”‚   β”‚
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ interviews/         # Interview module (to be created)
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ entities/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ dto/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ controllers/
β”‚   β”‚   β”‚   β”‚   └── πŸ“ services/
β”‚   β”‚   β”‚   β”‚
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ verifications/     # Verification module (to be created)
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ entities/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ dto/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ controllers/
β”‚   β”‚   β”‚   β”‚   └── πŸ“ services/
β”‚   β”‚   β”‚   β”‚
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ blockchain/       # Blockchain integration (to be created)
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ services/
β”‚   β”‚   β”‚   β”‚   └── πŸ“ blockchain.module.ts
β”‚   β”‚   β”‚   β”‚
β”‚   β”‚   β”‚   └── πŸ“ migrations/        # Database migrations
β”‚   β”‚   β”‚       └── πŸ“„ 1766879620396-InitialSchema.ts
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ πŸ“ dist/                  # Compiled JavaScript (generated)
β”‚   β”‚   └── πŸ“ node_modules/          # Backend dependencies
β”‚   β”‚
β”‚   └── πŸ“ ai-service/                # Python/FastAPI AI Service
β”‚       β”œβ”€β”€ πŸ“„ main.py                # FastAPI application entry point
β”‚       β”œβ”€β”€ πŸ“„ requirements.txt       # Python dependencies
β”‚       β”œβ”€β”€ πŸ“„ README.md              # AI service documentation
β”‚       β”œβ”€β”€ πŸ“„ .env                   # Environment variables
β”‚       β”œβ”€β”€ πŸ“„ .env.example           # Environment variables template
β”‚       β”‚
β”‚       β”œβ”€β”€ πŸ“ services/              # AI services (to be created)
β”‚       β”‚   β”œβ”€β”€ πŸ“„ question_generator.py
β”‚       β”‚   β”œβ”€β”€ πŸ“„ code_evaluator.py
β”‚       β”‚   β”œβ”€β”€ πŸ“„ code_executor.py
β”‚       β”‚   └── πŸ“„ skill_scorer.py
β”‚       β”‚
β”‚       β”œβ”€β”€ πŸ“ models/                # ML models (to be created)
β”‚       β”‚   └── πŸ“„ ...
β”‚       β”‚
β”‚       β”œβ”€β”€ πŸ“ utils/                 # Utilities (to be created)
β”‚       β”‚   β”œβ”€β”€ πŸ“„ docker_client.py
β”‚       β”‚   └── πŸ“„ llm_client.py
β”‚       β”‚
β”‚       └── πŸ“ venv/                  # Python virtual environment (generated)
β”‚
β”œβ”€β”€ πŸ“ contracts/                     # Solidity Smart Contracts (to be created)
β”‚   β”œβ”€β”€ πŸ“ contracts/
β”‚   β”‚   β”œβ”€β”€ πŸ“„ SkillProofNFT.sol      # ERC-721 NFT contract
β”‚   β”‚   └── πŸ“„ VerificationContract.sol
β”‚   β”œβ”€β”€ πŸ“ scripts/
β”‚   β”‚   └── πŸ“„ deploy.js
β”‚   β”œβ”€β”€ πŸ“ test/
β”‚   β”‚   └── πŸ“„ SkillProofNFT.test.js
β”‚   β”œβ”€β”€ πŸ“„ hardhat.config.js
β”‚   └── πŸ“„ package.json
β”‚
β”œβ”€β”€ πŸ“ docs/                          # Additional documentation (to be created)
β”‚   β”œβ”€β”€ πŸ“„ API.md                     # API documentation
β”‚   β”œβ”€β”€ πŸ“„ DEPLOYMENT.md              # Deployment guide
β”‚   └── πŸ“„ ARCHITECTURE.md            # System architecture
β”‚
└── πŸ“ node_modules/                  # Root dependencies

πŸ“¦ Package Details

🎨 Frontend (packages/frontend/)

Technology Stack:

  • Next.js 14 (App Router)
  • React 18
  • TypeScript
  • styled-components
  • Zustand (state management)
  • Ethers.js (blockchain)
  • Axios (HTTP client)

Key Directories:

  • src/app/ - Next.js pages (20+ pages)
  • src/components/ - Reusable React components
  • src/theme/ - Design system
  • src/lib/ - Utilities and API client
  • src/store/ - State management
  • src/types/ - TypeScript definitions

Pages Created:

  • Public: Landing, Features, Pricing, How It Works, About, Blog, Careers
  • Support: Help, Contact, Privacy, Terms
  • Auth: Login, Signup
  • Candidate: Dashboard, Profile, Public Profile, Verify Skill, Interview, Results
  • Employer: Dashboard
  • Error: 404 Not Found

Components Created:

  • UI: Button, Card, Input, Badge, Modal, Toast, Select, LoadingSpinner, ProgressBar, Tabs
  • Layout: Header, Footer
  • Interview: CodeEditor, QuestionDisplay, TestResults
  • Blockchain: NFTBadge, WalletConnect, VerificationStatus

βš™οΈ Backend (packages/backend/)

Technology Stack:

  • NestJS (Node.js framework)
  • TypeScript
  • TypeORM (database ORM)
  • PostgreSQL (database)
  • Redis (caching)
  • Passport (authentication)
  • JWT (tokens)

Key Directories:

  • src/ - Source code
  • src/users/ - User management (partially implemented)
  • src/migrations/ - Database migrations
  • dist/ - Compiled output

Modules to Create:

  • auth/ - Authentication & authorization
  • candidates/ - Candidate management
  • employers/ - Employer management
  • interviews/ - Interview management
  • verifications/ - Skill verification
  • blockchain/ - Blockchain integration

API Endpoints (to be implemented):

  • /api/auth/* - Authentication endpoints
  • /api/users/* - User management
  • /api/candidates/* - Candidate operations
  • /api/employers/* - Employer operations
  • /api/interviews/* - Interview management
  • /api/verifications/* - Verification operations
  • /api/health - Health check

πŸ€– AI Service (packages/ai-service/)

Technology Stack:

  • Python 3.10+
  • FastAPI (web framework)
  • OpenAI API / LLM APIs
  • Docker (code execution sandbox)
  • Redis (caching)

Key Files:

  • main.py - FastAPI application
  • requirements.txt - Python dependencies

Services to Create:

  • question_generator.py - Generate coding questions
  • code_evaluator.py - Evaluate code submissions
  • code_executor.py - Execute code in Docker sandbox
  • skill_scorer.py - Calculate skill scores

Endpoints (to be implemented):

  • POST /api/interviews/generate-question - Generate question
  • POST /api/interviews/evaluate - Evaluate code
  • POST /api/interviews/execute - Execute code
  • GET /health - Health check

⛓️ Blockchain (contracts/ - to be created)

Technology Stack:

  • Solidity
  • Hardhat (development framework)
  • Ethers.js
  • Polygon / Base network

Contracts to Create:

  • SkillProofNFT.sol - ERC-721 NFT contract
  • VerificationContract.sol - On-chain verification

πŸ“Š File Statistics

Frontend

  • Pages: 20+ pages
  • Components: 20+ components
  • Lines of Code: ~5,000+ lines

Backend

  • Modules: 1 (users) partially implemented
  • Entities: 1 (user.entity.ts)
  • Migrations: 1 (InitialSchema)

AI Service

  • Main File: 1 (main.py)
  • Endpoints: 4 placeholder endpoints

πŸ”§ Configuration Files

Root Level

  • package.json - Monorepo workspace configuration
  • .gitignore - Git ignore rules
  • .prettierrc - Code formatting
  • docker-compose.yml - Docker services

Frontend

  • next.config.js - Next.js configuration
  • tsconfig.json - TypeScript configuration
  • .env.local - Environment variables

Backend

  • nest-cli.json - NestJS CLI configuration
  • tsconfig.json - TypeScript configuration
  • .env - Environment variables

AI Service

  • requirements.txt - Python dependencies
  • .env - Environment variables

πŸ“ Documentation Files

Project Documentation

  • README.md - Project overview
  • FILE_STRUCTURE.md - This file
  • OverView.txt - Product overview
  • Features.txt - Feature list
  • breakdown.txt - Task breakdown

Application Flow

  • App_Flow/APP_FLOW_BREAKDOWN.md - Flow structure
  • App_Flow/APP_FLOW_PART1.md - Part 1 documentation
  • App_Flow/APP_FLOW_PART2.md - Part 2 documentation
  • App_Flow/APP_FLOW_PART3.md - Part 3 documentation