A modern web application that allows users to upload files without login, with automatic storage in GitHub repositories.
- Simple, intuitive file upload interface
- Direct GitHub repository integration for file storage
- No user login required
- Shareable links for each uploaded file
- File upload progress indicators
- Responsive design for all devices
- Frontend: React, TypeScript, Tailwind CSS, Lucide Icons
- Backend: Node.js, Express
- Storage: GitHub repositories (via GitHub API)
- Node.js (v16 or higher)
- A GitHub account
- A GitHub personal access token with repo permissions
- Clone the repository
- Install dependencies:
npm install- Create a
.envfile in the root directory based on the.env.examplefile:
# GitHub API configuration
GITHUB_TOKEN=your_github_personal_access_token
GITHUB_USERNAME=your_github_username
GITHUB_REPO=your_repository_name
# Server configuration
PORT=5000
CLIENT_URL=http://localhost:5173
- Start the development server:
# Run frontend and backend concurrently
npm run dev:full
# Or run them separately
npm run dev # Frontend
npm run server # Backend- Open your browser and navigate to
http://localhost:5173
- Create a new repository on GitHub (or use an existing one)
- Generate a personal access token with repo permissions:
- Go to GitHub Settings > Developer settings > Personal access tokens
- Generate a new token with "repo" scope
- Copy the token and add it to your
.envfile
github-file-uploader/
├── .env # Environment variables
├── package.json # Project dependencies
├── src/ # Frontend code
│ ├── components/ # React components
│ ├── App.tsx # Main application component
│ └── main.tsx # Application entry point
├── server/ # Backend code
│ └── index.js # Express server and API routes
This project is licensed under the MIT License - see the LICENSE file for details.