|
|
3 dagen geleden | |
|---|---|---|
| .kilocode | 6 maanden geleden | |
| .vscode | 3 dagen geleden | |
| app | 3 dagen geleden | |
| components | 6 maanden geleden | |
| hooks | 6 maanden geleden | |
| lib | 6 maanden geleden | |
| prisma | 3 dagen geleden | |
| public | 6 maanden geleden | |
| .dockerignore | 6 maanden geleden | |
| .env | 6 maanden geleden | |
| .env.local | 6 maanden geleden | |
| .env.production | 6 maanden geleden | |
| .gitignore | 6 maanden geleden | |
| DATABASE_SETUP.md | 6 maanden geleden | |
| Dockerfile | 6 maanden geleden | |
| IMPLEMENTATION_PLAN.md | 6 maanden geleden | |
| KINDE_SETUP.md | 6 maanden geleden | |
| README.md | 6 maanden geleden | |
| components.json | 6 maanden geleden | |
| docker-compose.yml | 6 maanden geleden | |
| eslint.config.mjs | 6 maanden geleden | |
| middleware.ts | 6 maanden geleden | |
| next.config.ts | 6 maanden geleden | |
| package-lock.json | 1 maand geleden | |
| package.json | 1 maand geleden | |
| postcss.config.mjs | 6 maanden geleden | |
| tailwind.config.ts | 6 maanden geleden | |
| test-upload.html | 6 maanden geleden | |
| tsconfig.json | 6 maanden geleden |
A Next.js-based file upload and management system with PostgreSQL database storage and comprehensive API documentation.
Install dependencies:
npm install
Set up environment variables:
cp .env.example .env
# Edit .env with your database credentials
Set up the database:
npx prisma migrate dev
Start the development server:
npm run dev
The application will be available at http://localhost:3000 (or next available port).
Visit http://localhost:3000/api-docs for interactive Swagger UI documentation where you can:
| 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 |
curl -X POST http://localhost:3000/api/upload \
-F "file=@/path/to/your/file.pdf"
curl http://localhost:3000/api/files
curl http://localhost:3000/api/files/{file-id} --output downloaded-file.pdf
The application uses Prisma ORM with the following schema:
id: Unique identifierfilename: Original filenamemimetype: MIME type of the filesize: File size in bytesdata: Binary file contentcreatedAt: Upload timestampupdatedAt: Last update timestamp# Reset database
npx prisma migrate reset
# View database
npx prisma studio
# Generate new migration
npx prisma migrate dev --name your-migration-name
Create a .env file with:
DATABASE_URL="postgresql://username:password@localhost:5432/vtorio"
# Build and run with Docker Compose
docker-compose up --build
MIT License - see LICENSE file for details.