A full-stack web application for generating and managing QR codes with customizable features including text, colors, and logos.
- 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
- 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
- Python - Server-side language
- FastAPI (assumed based on structure) - Backend framework
- SQLite/PostgreSQL (assumed) - Database
βββ 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
- Node.js (v18 or higher)
- Python (v3.8 or higher)
- pip (Python package manager)
-
Clone the repository
git clone <repository-url> cd Tools-Website
-
Setup Backend
cd backend pip install -r requirements.txt
-
Setup Frontend
cd frontend npm install
-
Start the Backend Server
cd backend chmod +x run.sh ./run.sh
Or manually:
python -m uvicorn app.main:app --reload
-
Start the Frontend Development Server
cd frontend npm run dev
-
Access the Application
- Frontend:
http://localhost:5173
- Backend API:
http://localhost:8000
- Frontend:
Create a .env
file in the frontend/
directory:
VITE_API_BASE_URL=http://localhost:8000
Create a .env
file in the backend/
directory:
DATABASE_URL=your_database_url
SECRET_KEY=your_secret_key
-
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
-
View History:
- Access the QR History page to view previously generated codes
- Download or manage your QR codes
-
Download QR Codes:
- Click the download button to save QR codes in various formats
GET /api/qr-history
- Retrieve QR code historyPOST /api/qr-generate
- Generate new QR codeDELETE /api/qr/{id}
- Delete QR codeGET /api/qr/{id}/download
- Download QR code
cd frontend
npm run test
cd backend
pytest
cd frontend
npm run build
cd backend
# Follow your deployment platform's instructions
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Nhan Pham Thanh
- Material-UI for the component library
- qr-code-styling for QR code generation capabilities
- React and Vite communities for excellent tooling