Skip to content

PrintCBS is a modern, secure, and lightning-fast file sharing platform that allows users to share files instantly without requiring any login or registration.

Notifications You must be signed in to change notification settings

vinitvijal/PrintCBS

Repository files navigation

PrintCBS - Instant File Sharing Platform

Next.js React TypeScript Prisma Tailwind CSS

PrintCBS is a modern, secure, and lightning-fast file sharing platform that allows users to share files instantly without requiring any login or registration. Perfect for students, professionals, and anyone who needs to quickly transfer files between devices.

✨ Features

  • 🚀 Instant File Sharing - Share files with a simple 6-character code
  • 🔒 Secure & Private - Files are automatically deleted within 24 hours
  • 📱 Cross-Device Compatible - Works seamlessly across all devices and browsers
  • 🎯 Any File Type - Support for documents, images, videos, and any file format
  • ⚡ Lightning Fast - Blazing-fast upload and download speeds
  • 🔍 File Search - Easily search through shared files
  • 📊 Real-time Statistics - Track the number of files shared globally

🎯 How It Works

For Senders:

  1. Visit the Send Files page
  2. Get a unique 6-character bucket code
  3. Drag & drop or select files to upload
  4. Share the bucket code with recipients

For Receivers:

  1. Visit the Receive Files page
  2. Enter the 6-character bucket code
  3. Browse and download shared files
  4. Search through files if needed

🛠️ Tech Stack

  • Frontend: Next.js 15, React 19, TypeScript
  • Styling: Tailwind CSS, Radix UI Components
  • Database: PostgreSQL with Prisma ORM
  • File Storage: UploadThing
  • Deployment: Vercel
  • UI Icons: Lucide React

🚀 Getting Started

Prerequisites

  • Node.js 18+
  • npm, yarn, pnpm, or bun
  • PostgreSQL database
  • UploadThing account (for file storage)

Installation

  1. Clone the repository

    git clone https://github.com/yourusername/printcbs.git
    cd printcbs
  2. Install dependencies

    npm install
    # or
    yarn install
    # or
    pnpm install
  3. Set up environment variables Create a .env.local file in the root directory:

    DATABASE_URL="postgresql://username:password@localhost:5432/printcbs"
    UPLOADTHING_SECRET="your_uploadthing_secret"
    UPLOADTHING_APP_ID="your_uploadthing_app_id"
  4. Set up the database

    npx prisma generate
    npx prisma db push
  5. Run the development server

    npm run dev
    # or
    yarn dev
    # or
    pnpm dev
  6. Open your browser Navigate to http://localhost:3000 to see the application.

📁 Project Structure

PrintCBS/
├── app/                    # Next.js app directory
│   ├── api/               # API routes
│   ├── receive/           # File receiving pages
│   ├── send/              # File sending pages
│   └── page.tsx           # Homepage
├── components/            # Reusable UI components
│   ├── ui/               # Base UI components
│   └── receive.tsx       # Receive form component
├── lib/                  # Utility libraries
├── prisma/               # Database schema and migrations
├── server/               # Server actions
└── utils/                # Utility functions

🔧 Available Scripts

  • npm run dev - Start development server
  • npm run build - Build for production
  • npm run start - Start production server
  • npm run lint - Run ESLint
  • npx prisma studio - Open Prisma Studio for database management

🌐 Deployment

The easiest way to deploy PrintCBS is using Vercel:

  1. Push your code to GitHub
  2. Import your repository to Vercel
  3. Add your environment variables
  4. Deploy!

🤝 Contributing

We welcome contributions from the community! Here's how you can help:

🐛 Reporting Bugs

  1. Check if the bug has already been reported in the Issues section
  2. Create a new issue with a clear title and description
  3. Include steps to reproduce the bug
  4. Add screenshots or videos if applicable

💡 Suggesting Features

  1. Check if the feature has already been suggested
  2. Create a new issue with the enhancement label
  3. Describe the feature and its benefits
  4. Provide mockups or examples if possible

🔧 Contributing Code

  1. Fork the repository
  2. Create a feature branch
    git checkout -b feature/amazing-feature
  3. Make your changes
    • Follow the existing code style
    • Add tests if applicable
    • Update documentation if needed
  4. Commit your changes
    git commit -m 'Add amazing feature'
  5. Push to the branch
    git push origin feature/amazing-feature
  6. Open a Pull Request

📋 Development Guidelines

  • Follow the existing code style and conventions
  • Write meaningful commit messages
  • Test your changes thoroughly
  • Update documentation for any new features
  • Ensure all tests pass before submitting a PR

🏷️ Issue Labels

  • bug - Something isn't working
  • enhancement - New feature or request
  • documentation - Improvements or additions to documentation
  • good first issue - Good for newcomers
  • help wanted - Extra attention is needed

📄 License

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

👨‍💻 Author

Vinu - LinkedIn

Made with ❤️ for the community

🙏 Acknowledgments


⭐ If you find this project helpful, please give it a star on GitHub!

About

PrintCBS is a modern, secure, and lightning-fast file sharing platform that allows users to share files instantly without requiring any login or registration.

Topics

Resources

Stars

Watchers

Forks