Skip to content
This repository was archived by the owner on Jun 27, 2025. It is now read-only.

Full-stack QR code generator with React frontend and Python backend. Features customizable QR creation with colors/logos, history management, search/filter functionality, pagination, and download capabilities. Built with Material-UI, FastAPI, and includes responsive design for seamless desktop/mobile experience.

License

Notifications You must be signed in to change notification settings

NhanPhamThanh-IT/QR-Generator-Fullstack

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

98 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

QR Generator Fullstack

A full-stack web application for generating and managing QR codes with customizable features including text, colors, and logos.

Login page

Login Page

Homepage

Home Page

πŸš€ Features

  • QR Code Generation: Create QR codes with custom text content
  • Customization Options:
    • Custom colors
    • Logo integration
    • Various styling options
  • QR Code History: Track and manage previously generated QR codes
  • Download Functionality: Save QR codes in various formats
  • Responsive Design: Works seamlessly on desktop and mobile devices

πŸ› οΈ Tech Stack

Frontend

  • React 19 - UI library
  • Vite - Build tool and development server
  • Material-UI (MUI) - Component library
  • Axios - HTTP client
  • qr-code-styling - QR code generation and styling
  • React Hook Form - Form management

Backend

  • Python - Server-side language
  • FastAPI (assumed based on structure) - Backend framework
  • SQLite/PostgreSQL (assumed) - Database

πŸ“ Project Structure

β”œβ”€β”€ frontend/                 # React frontend application
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ components/      # Reusable UI components
β”‚   β”‚   β”œβ”€β”€ pages/          # Page components
β”‚   β”‚   β”œβ”€β”€ api/            # API service functions
β”‚   β”‚   β”œβ”€β”€ hooks/          # Custom React hooks
β”‚   β”‚   β”œβ”€β”€ services/       # Business logic services
β”‚   β”‚   └── utils/          # Utility functions
β”‚   β”œβ”€β”€ package.json
β”‚   └── vite.config.js
β”œβ”€β”€ backend/                 # Python backend application
β”‚   β”œβ”€β”€ app/
β”‚   β”‚   β”œβ”€β”€ api/            # API endpoints
β”‚   β”‚   β”œβ”€β”€ core/           # Core application logic
β”‚   β”‚   β”œβ”€β”€ db/             # Database configuration
β”‚   β”‚   β”œβ”€β”€ models/         # Database models
β”‚   β”‚   β”œβ”€β”€ schemas/        # Pydantic schemas
β”‚   β”‚   └── services/       # Business logic services
β”‚   β”œβ”€β”€ requirements.txt
β”‚   └── run.sh
└── README.md

🚦 Getting Started

Prerequisites

  • Node.js (v18 or higher)
  • Python (v3.8 or higher)
  • pip (Python package manager)

Installation

  1. Clone the repository

    git clone <repository-url>
    cd Tools-Website
  2. Setup Backend

    cd backend
    pip install -r requirements.txt
  3. Setup Frontend

    cd frontend
    npm install

Running the Application

  1. Start the Backend Server

    cd backend
    chmod +x run.sh
    ./run.sh

    Or manually:

    python -m uvicorn app.main:app --reload
  2. Start the Frontend Development Server

    cd frontend
    npm run dev
  3. Access the Application

    • Frontend: http://localhost:5173
    • Backend API: http://localhost:8000

πŸ”§ Configuration

Frontend Configuration

Create a .env file in the frontend/ directory:

VITE_API_BASE_URL=http://localhost:8000

Backend Configuration

Create a .env file in the backend/ directory:

DATABASE_URL=your_database_url
SECRET_KEY=your_secret_key

πŸ“ Usage

  1. Generate QR Code:

    • Navigate to the QR Generator page
    • Enter your text content
    • Customize colors and add logos if desired
    • Click "Generate" to create your QR code
  2. View History:

    • Access the QR History page to view previously generated codes
    • Download or manage your QR codes
  3. Download QR Codes:

    • Click the download button to save QR codes in various formats

πŸ“± API Endpoints

  • GET /api/qr-history - Retrieve QR code history
  • POST /api/qr-generate - Generate new QR code
  • DELETE /api/qr/{id} - Delete QR code
  • GET /api/qr/{id}/download - Download QR code

πŸ§ͺ Testing

Frontend

cd frontend
npm run test

Backend

cd backend
pytest

πŸš€ Deployment

Frontend

cd frontend
npm run build

Backend

cd backend
# Follow your deployment platform's instructions

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ‘¨β€πŸ’» Author

Nhan Pham Thanh

πŸ™ Acknowledgments

  • Material-UI for the component library
  • qr-code-styling for QR code generation capabilities
  • React and Vite communities for excellent tooling

About

Full-stack QR code generator with React frontend and Python backend. Features customizable QR creation with colors/logos, history management, search/filter functionality, pagination, and download capabilities. Built with Material-UI, FastAPI, and includes responsive design for seamless desktop/mobile experience.

Topics

Resources

License

Stars

Watchers

Forks