Vtorio LLC

vidane 70b0caae45 feat(ui): add new-summary view mode for enhanced cintas calendar workflow 10 tháng trước cách đây
.kilocode 5bffc8a922 feat: add mcp.json configuration for context7 and sequentialthinking servers 10 tháng trước cách đây
.vscode 8d6eb64a9f feat(auth): add user ownership to file uploads with kinde integration 10 tháng trước cách đây
app 70b0caae45 feat(ui): add new-summary view mode for enhanced cintas calendar workflow 10 tháng trước cách đây
components 3d1f510cd2 feat(db): add layout configuration models and enable database connection 10 tháng trước cách đây
hooks 1e60f50162 feat: add UI components for card, dropdown menu, form, input, label, navigation menu, select, skeleton, table, textarea, toast, and toaster 10 tháng trước cách đây
lib 3d1f510cd2 feat(db): add layout configuration models and enable database connection 10 tháng trước cách đây
prisma 8d6eb64a9f feat(auth): add user ownership to file uploads with kinde integration 10 tháng trước cách đây
public b4803eacbd docs: update implementation plan for Cintas Install Calendar Summary feature 10 tháng trước cách đây
.dockerignore 0c574399e1 Initial commit after add content from prior repo. 10 tháng trước cách đây
.env 8d6eb64a9f feat(auth): add user ownership to file uploads with kinde integration 10 tháng trước cách đây
.env.local 880a806a06 chore(config): add prisma generate script to package.json 10 tháng trước cách đây
.env.production b4f84fe9c8 feat(cintas): add production environment configuration and enhance summary calculation 10 tháng trước cách đây
.gitignore a40c2826df feat(env): add environment configuration files for database and Kinde authentication 10 tháng trước cách đây
DATABASE_SETUP.md 87d3d5b65d feat: persist uploads in PostgreSQL via Prisma ORM 10 tháng trước cách đây
Dockerfile 642a5a1fb8 build(docker): add prisma generate step to docker build process 10 tháng trước cách đây
IMPLEMENTATION_PLAN.md b4803eacbd docs: update implementation plan for Cintas Install Calendar Summary feature 10 tháng trước cách đây
KINDE_SETUP.md 5b63d4ae5a feat: integrate Kinde authentication into Next.js application 10 tháng trước cách đây
README.md f8dc85ec91 docs: replace default Next.js README with comprehensive project documentation 10 tháng trước cách đây
components.json 1e60f50162 feat: add UI components for card, dropdown menu, form, input, label, navigation menu, select, skeleton, table, textarea, toast, and toaster 10 tháng trước cách đây
docker-compose.yml 87d3d5b65d feat: persist uploads in PostgreSQL via Prisma ORM 10 tháng trước cách đây
eslint.config.mjs 9aee7858e7 chore(lint): disable explicit-any rule and add type annotations for any types 10 tháng trước cách đây
middleware.ts 745b56f4f0 fix(middleware): update import path for withAuth and refactor middleware function 10 tháng trước cách đây
next.config.ts 880a806a06 chore(config): add prisma generate script to package.json 10 tháng trước cách đây
package-lock.json ccf17c8815 WIP 10 tháng trước cách đây
package.json 880a806a06 chore(config): add prisma generate script to package.json 10 tháng trước cách đây
postcss.config.mjs 0c574399e1 Initial commit after add content from prior repo. 10 tháng trước cách đây
tailwind.config.ts 1e60f50162 feat: add UI components for card, dropdown menu, form, input, label, navigation menu, select, skeleton, table, textarea, toast, and toaster 10 tháng trước cách đây
test-upload.html 87d3d5b65d feat: persist uploads in PostgreSQL via Prisma ORM 10 tháng trước cách đây
tsconfig.json 0c574399e1 Initial commit after add content from prior repo. 10 tháng trước cách đây

README.md

Vtorio - File Upload & Management System

A Next.js-based file upload and management system with PostgreSQL database storage and comprehensive API documentation.

Features

  • File Upload: Upload files via web interface or API
  • File Management: List, view, and download uploaded files
  • Database Storage: Files stored in PostgreSQL with metadata
  • API Documentation: Interactive Swagger/OpenAPI documentation
  • REST API: Full RESTful API for programmatic access

Quick Start

Prerequisites

  • Node.js 18+
  • PostgreSQL database
  • npm or yarn

Installation

  1. Clone the repository
  2. Install dependencies:

    npm install
    
  3. Set up environment variables:

    cp .env.example .env
    # Edit .env with your database credentials
    
  4. Set up the database:

    npx prisma migrate dev
    
  5. Start the development server:

    npm run dev
    

The application will be available at http://localhost:3000 (or next available port).

API Documentation

Interactive Documentation

Visit http://localhost:3000/api-docs for interactive Swagger UI documentation where you can:

  • Test all API endpoints
  • Upload files via the web interface
  • View response schemas and examples
  • Download files directly

API Endpoints

Method Endpoint Description
POST /api/upload Upload a file (multipart/form-data)
GET /api/files List all uploaded files with metadata
GET /api/files/{id} Download a specific file by ID
GET /api/openapi.json Raw OpenAPI specification

Example Usage

Upload a file via curl:

curl -X POST http://localhost:3000/api/upload \
  -F "file=@/path/to/your/file.pdf"

List all files:

curl http://localhost:3000/api/files

Download a file:

curl http://localhost:3000/api/files/{file-id} --output downloaded-file.pdf

Database Schema

The application uses Prisma ORM with the following schema:

  • File: Stores file data and metadata
    • id: Unique identifier
    • filename: Original filename
    • mimetype: MIME type of the file
    • size: File size in bytes
    • data: Binary file content
    • createdAt: Upload timestamp
    • updatedAt: Last update timestamp

Development

Database Management

# Reset database
npx prisma migrate reset

# View database
npx prisma studio

# Generate new migration
npx prisma migrate dev --name your-migration-name

Environment Variables

Create a .env file with:

DATABASE_URL="postgresql://username:password@localhost:5432/vtorio"

Deployment

Docker

# Build and run with Docker Compose
docker-compose up --build

Vercel

  1. Push to GitHub
  2. Import project on Vercel
  3. Add environment variables
  4. Deploy

Technologies Used

  • Next.js 15 - React framework
  • TypeScript - Type safety
  • PostgreSQL - Database
  • Prisma - ORM
  • Tailwind CSS - Styling
  • Swagger UI - API documentation
  • Docker - Containerization

License

MIT License - see LICENSE file for details.