Skip to content

Latest commit

 

History

History
202 lines (165 loc) · 5.44 KB

File metadata and controls

202 lines (165 loc) · 5.44 KB

ProjectMaker - Setup Instructions

🎯 Full Vision Implemented

An interactive project scaffolding system with a guided wizard that:

  • ✅ Builds both backend and frontend structures automatically
  • ✅ Generates starter code with best practices
  • ✅ Supports multiple frameworks (FastAPI, Flask, Django, React, Vue, Angular)
  • ✅ Creates requirements.txt, folder hierarchy, and DB setup
  • ✅ Beautiful UI with React, Framer Motion, Emotion, and Lenis smooth scrolling
  • ✅ Real-time preview and status tracking

🚀 Quick Start

Backend Setup

cd backend
pip install -r requirements.txt
python -m uvicorn app.main:app --reload --port 8000

Backend will run on: http://localhost:8000

Frontend Setup

cd frontend
npm install
npm run dev

Frontend will run on: http://localhost:3000

📦 What's Included

Backend (FastAPI)

  • app/services/project_generator.py - Core project generation logic
  • app/services/templates.py - Framework-specific code templates
  • app/routes/project_routes.py - API endpoints for projects
  • Database models for tracking generated projects
  • SQLite database (can be switched to MySQL)

Frontend (React + Vite)

  • React 18 with hooks
  • Framer Motion for smooth animations
  • Emotion for CSS-in-JS styling
  • Lenis for buttery smooth scrolling
  • React Icons for beautiful icons
  • Axios for API communication

UI Components

  • Hero.jsx - Landing page with animated features
  • Wizard.jsx - Multi-step wizard with progress tracking
  • Step components (to be created):
    • Step 1: Project Info (name, description, frameworks)
    • Step 2: Customization (folder names, extra files)
    • Step 3: Preview (project tree visualization)
    • Step 4: Build (execute generation with real-time status)

🎨 Tech Stack

Frontend

  • React 18.3.1
  • Framer Motion 11.5.4 - Animations
  • Emotion 11.13.3 - Styled components
  • Lenis 1.1.9 - Smooth scroll
  • Vite 5.4.3 - Build tool
  • Axios 1.7.7 - HTTP client

Backend

  • FastAPI 0.119.0
  • SQLAlchemy 2.0.44
  • Pydantic 2.12.3
  • Uvicorn 0.38.0

📁 Project Structure

projectMaker/
├── backend/
│   ├── app/
│   │   ├── services/
│   │   │   ├── project_generator.py  # Core generation logic
│   │   │   └── templates.py          # Framework templates
│   │   ├── routes/
│   │   │   ├── project_routes.py
│   │   │   └── setup_routes.py
│   │   ├── main.py
│   │   ├── database.py
│   │   ├── models.py
│   │   ├── schemas.py
│   │   └── crud.py
│   ├── config/
│   │   └── db_config.json
│   └── requirements.txt
├── frontend/
│   ├── src/
│   │   ├── components/
│   │   │   ├── Hero.jsx
│   │   │   ├── Wizard.jsx
│   │   │   └── steps/
│   │   │       ├── StepProjectInfo.jsx
│   │   │       ├── StepCustomization.jsx
│   │   │       ├── StepPreview.jsx
│   │   │       └── StepBuild.jsx
│   │   ├── App.jsx
│   │   ├── main.jsx
│   │   └── index.css
│   ├── index.html
│   ├── vite.config.js
│   └── package.json
└── SETUP.md

🎬 Next Steps

I've created:

  1. ✅ Backend project generator service
  2. ✅ Complete template system for all frameworks
  3. ✅ Frontend with React, Framer Motion, Emotion, Lenis
  4. ✅ Hero landing page with animations
  5. ✅ Wizard component with step progress

Still needed (I can create these next):

  • Step components (StepProjectInfo, StepCustomization, StepPreview, StepBuild)
  • Enhanced API endpoints for preview and build
  • Enhanced schemas for wizard data
  • PDF generation feature (optional)

🌟 Features

Project Generation

  • Creates full project structure
  • Generates starter code for selected frameworks
  • Creates requirements.txt / package.json
  • Generates README with setup instructions
  • Creates .gitignore
  • Optional Git initialization

Supported Frameworks

Backend:

  • FastAPI (with SQLAlchemy, Pydantic, CRUD)
  • Flask (with Flask-SQLAlchemy, Blueprints)
  • Django (with DRF, CORS)

Frontend:

  • React (with Vite, hooks)
  • Vue 3 (with Composition API)
  • Angular 17
  • Plain HTML/CSS/JS

UI/UX

  • Smooth scroll with Lenis
  • Fluid animations with Framer Motion
  • Modern dark theme
  • Responsive design
  • Real-time validation
  • Progress tracking
  • Status feedback

🔧 Configuration

Change Backend Port

Edit backend/app/main.py or run:

uvicorn app.main:app --port YOUR_PORT

Change Frontend Port

Edit frontend/vite.config.js:

server: {
  port: YOUR_PORT
}

Change Database

Edit backend/config/db_config.json to use MySQL instead of SQLite.

📝 Environment Variables

Create .env in backend/ (optional):

DATABASE_URL=sqlite:///./projectmaker.db
SECRET_KEY=your-secret-key

🎯 Usage Flow

  1. Landing Page - User sees hero with features
  2. Start Wizard - Click "Start Building"
  3. Step 1: Project Info - Enter name, description, select frameworks
  4. Step 2: Customization - Customize folder names, add extra folders
  5. Step 3: Preview - See project tree before generation
  6. Step 4: Build - Execute generation with real-time status
  7. Done! - Download project or get location path

🚀 Ready to Run!

Just install dependencies and start both servers. The frontend proxies API requests to the backend automatically.