An open API service indexing awesome lists of open source software.

https://github.com/bernietv/filestorage-platform

A sleek, secure, and scalable file storage platform powered by the MERN stack with AWS S3, JWT auth, and a modern UI for effortless uploads, downloads, and analytics πŸš€πŸ“¦πŸ”πŸ“Š
https://github.com/bernietv/filestorage-platform

aws-s3 expressjs jwt-authentication logtail mongodb nodejs passportjs react redux-toolkit shadcn-ui tailwindcss typescript vite

Last synced: 3 months ago
JSON representation

A sleek, secure, and scalable file storage platform powered by the MERN stack with AWS S3, JWT auth, and a modern UI for effortless uploads, downloads, and analytics πŸš€πŸ“¦πŸ”πŸ“Š

Awesome Lists containing this project

README

          

Project Banner

# 🌟 FileStorage Platform

A **next‑gen cloud storage solution** where speed, security, and simplicity collide. πŸš€ Built with the **MERN Stack**, this platform lets you upload, manage, and share files effortlessly while packing in serious power with AWS S3, JWT auth, analytics, and a slick modern UI. Perfect for devs, teams, or anyone who vibes with **secure & scalable file management**.

---

## πŸ—οΈ Key Features: πŸ‘‡

- πŸ” Authentication (Email + Password with JWT)
- πŸ“Š Analytics & Charts for Storage Insights
- πŸ“€ Multiple File Uploads
- ☁️ AWS S3 Integration for Secure & Scalable Storage
- πŸ’Ύ Storage Tracking for Each User
- πŸ“š Bulk File Download as Zip
- πŸ“¦ TypeScript SDK Published to npm
- πŸ”‘ API Key Authentication for Secure Access
- πŸ“… Pagination & File Search
- πŸ“ Logging with Logtail
- πŸš€ Deployment Ready
- 🌐 Built with MERN Stack (Node.js, MongoDB, React 19)
- 🎨 Styled with Tailwind v4 & Shadcn/ui

---

## πŸ› οΈ Tech Stack

- **Frontend:** React 19, TypeScript, TailwindCSS v4, Shadcn/ui, Vite
- **Backend:** Node.js, Express.js, TypeScript, MongoDB, JWT, Passport.js
- **Cloud & Storage:** AWS S3
- **Logging & Monitoring:** Logtail
- **State Management:** Redux Toolkit
- **Package Management:** npm

---

## πŸ“‚ Simplified Project Structure

```
.
β”œβ”€β”€ backend # Node.js + Express API
β”‚ β”œβ”€β”€ src
β”‚ β”‚ β”œβ”€β”€ config # Configurations (DB, AWS, JWT, etc.)
β”‚ β”‚ β”œβ”€β”€ controllers # API Controllers
β”‚ β”‚ β”œβ”€β”€ middlewares # Authentication & Error Handling
β”‚ β”‚ β”œβ”€β”€ models # MongoDB Models
β”‚ β”‚ β”œβ”€β”€ routes # API Routes (Internal & Public)
β”‚ β”‚ β”œβ”€β”€ services # Business Logic
β”‚ β”‚ β”œβ”€β”€ utils # Helper Functions
β”‚ β”‚ └── validators # Request Validators
β”‚ └── tsconfig.json
β”‚
β”œβ”€β”€ client # React Frontend
β”‚ β”œβ”€β”€ src
β”‚ β”‚ β”œβ”€β”€ app # Redux & API Client
β”‚ β”‚ β”œβ”€β”€ components # UI Components
β”‚ β”‚ β”œβ”€β”€ features # Feature Modules (Auth, Files, Analytics)
β”‚ β”‚ β”œβ”€β”€ layouts # Page Layouts
β”‚ β”‚ β”œβ”€β”€ pages # Page-Level Components
β”‚ β”‚ β”œβ”€β”€ routes # Routing Config
β”‚ β”‚ └── hooks # Custom Hooks
β”‚ └── vite.config.ts
β”‚
β”œβ”€β”€ sdk # TypeScript SDK Published to npm
β”œβ”€β”€ README.md # Documentation
```

---

## βš™οΈ Environment Variables

### Backend (`.env`)

```
PORT=5000
NODE_ENV=development
MONGO_URI=your_mongo_connection_string
JWT_SECRET=your_jwt_secret
JWT_EXPIRES_IN=1d
LOG_LEVEL=info
LOGTAIL_SOURCE_TOKEN=your_logtail_token
LOGTAIL_INGESTING_HOST=your_logtail_host
AWS_ACCESS_KEY=your_aws_key
AWS_SECRET_KEY=your_aws_secret
AWS_REGION=your_aws_region
AWS_S3_BUCKET=your_bucket_name
ALLOWED_ORIGINS=http://localhost:5173
```

### Frontend (`.env`)

```
VITE_BASE_API_URL=http://localhost:5000/api
VITE_API_URL=http://localhost:5000
VITE_REDUX_PERSIST_SECRET_KEY=your_secret_key
```

---

## πŸš€ Installation & Setup

Clone the repository:

```bash
git clone https://github.com/BernieTv/FileStorage-Platform.git
cd FileStorage-Platform
```

### Backend Setup

```bash
cd backend
npm install
npm run dev
```

### Frontend Setup

```bash
cd client
npm install
npm run dev
```

---

πŸ’‘ Designed for **builders and creators**, this platform turns file storage into a smooth, secure, and scalable experience ✨.