Skip to content

This is a full-stack project that allows users to upload files, manage nested folders, and create shareable temporary links with expiration time control. The application is secured with JWT-based authentication.

Notifications You must be signed in to change notification settings

GoldGroove06/file-uploader

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 

Repository files navigation

File Upload and Folder Management System

This is a full-stack project that allows users to upload files, manage nested folders, and create shareable temporary links with expiration time control. The application is secured with JWT-based authentication.

Features

JWT authentication (register, login, protected routes)

Create, rename, delete folders (supports nesting)

Upload, rename, delete files

Generate temporary shareable links with expiration time

View shared files/folders via unique link

Prisma-based schema and database management

Tech Stack

Frontend

  • React 19
  • Vite
  • Tailwind CSS
  • Rad UI
  • React Router DOM
  • Lucide React Icons

Backend

  • Node.js
  • Express.js
  • Prisma ORM
  • PostgreSQL
  • Multer (File upload handling)
  • Passport.js (Authentication)
  • Express Validator
  • JWT Authentication
  • Session Management

Project Structure

file-uploader/
├── frontend/           # React frontend application
│   ├── src/           # Source files
│   ├── public/        # Static assets
│   └── package.json   # Frontend dependencies
│
└── server/            # Node.js backend application
    ├── controllers/   # Route controllers
    ├── routes/        # API routes
    ├── uploads/       # Uploaded files storage
    ├── prisma/        # Database schema and migrations
    ├── validators/    # Input validation
    ├── config/        # Configuration files
    └── package.json   # Backend dependencies

Getting Started

Prerequisites

  • Node.js (Latest LTS version)
  • PostgreSQL
  • npm or yarn

Installation

  1. Clone the repository:
git clone <repository-url>
cd file-uploader
  1. Install frontend dependencies:
cd frontend
npm install
  1. Install backend dependencies:
cd ../server
npm install
  1. Set up environment variables:

    • Create .env files in both frontend and server directories
    • Configure necessary environment variables (see .env.example files)
  2. Set up the database:

cd server
npx prisma migrate dev

Running the Application

  1. Start the backend server:
cd server
npm start
  1. Start the frontend development server:
cd frontend
npm run dev

The application will be available at:

Development

  • Frontend development server with hot reload: npm run dev
  • Build frontend for production: npm run build
  • Run linting: npm run lint

About

This is a full-stack project that allows users to upload files, manage nested folders, and create shareable temporary links with expiration time control. The application is secured with JWT-based authentication.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages