Virgool is a modern, scalable REST API built with NestJS framework. This project implements a robust backend system with features like authentication, file uploads, and database integration.
- 🔐 JWT Authentication
- 📁 File Upload Support
- 📊 PostgreSQL Database Integration
- 📚 Swagger API Documentation
- 🔍 Environment Configuration
- ✅ Input Validation
- 🧪 Testing Setup
- 🔄 TypeORM Integration
- Framework: NestJS
- Language: TypeScript
- Database: PostgreSQL
- ORM: TypeORM
- Authentication: JWT
- API Documentation: Swagger
- Testing: Jest
- Code Quality: ESLint, Prettier
- Node.js (v14 or higher)
- PostgreSQL
- npm or yarn
- Clone the repository
git clone [your-repository-url]
cd virgool
- Install dependencies
npm install
- Environment Setup
Create a
.env
file in the root directory and add the following variables:
DATABASE_URL=postgresql://username:password@localhost:5432/database_name
JWT_SECRET=your_jwt_secret
- Database Setup
# Run migrations
npm run typeorm migration:run
# Development
npm run start:dev
# Production
npm run build
npm run start:prod
# Unit Tests
npm run test
# E2E Tests
npm run test:e2e
# Test Coverage
npm run test:cov
Once the application is running, you can access the Swagger documentation at:
http://localhost:3000/api
src/
├── config/ # Configuration files
├── modules/ # Feature modules
├── common/ # Shared resources
├── middleware/ # Custom middleware
└── main.ts # Application entry point