{"_id":"@anand_kanzariya_/nestjs-boilerplate","name":"@anand_kanzariya_/nestjs-boilerplate","dist-tags":{"latest":"0.0.1"},"versions":{"0.0.1":{"name":"@anand_kanzariya_/nestjs-boilerplate","version":"0.0.1","description":"I'm Anand Kanzariya, a skilled Full Stack Developer with expertise in building dynamic and scalable web applications from front-end to back-end.","author":{"name":"Anand Kanzariya"},"private":false,"license":"UNLICENSED","scripts":{"build":"nest build","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","start":"nest start","start:dev":"nest start --watch","start:debug":"nest start --debug --watch","start:prod":"node dist/main","lint":"eslint \"{src,apps,libs,test}/**/*.ts\" --fix","test":"jest","test:watch":"jest --watch","test:cov":"jest --coverage","test:debug":"node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand","test:e2e":"jest --config ./test/jest-e2e.json","db:create":"node scripts/create-db.js"},"dependencies":{"@nestjs/common":"^10.0.0","@nestjs/config":"^4.0.2","@nestjs/core":"^10.0.0","@nestjs/jwt":"^11.0.0","@nestjs/mongoose":"^11.0.3","@nestjs/passport":"^11.0.5","@nestjs/platform-express":"^10.0.0","@nestjs/swagger":"^7.4.2","@nestjs/typeorm":"^11.0.0","bcrypt":"^6.0.0","class-transformer":"^0.5.1","class-validator":"^0.14.2","mongoose":"^8.18.1","passport":"^0.7.0","passport-jwt":"^4.0.1","passport-local":"^1.0.0","pg":"^8.16.3","reflect-metadata":"^0.2.0","rxjs":"^7.8.1","typeorm":"^0.3.26"},"devDependencies":{"@nestjs/cli":"^10.0.0","@nestjs/schematics":"^10.0.0","@nestjs/testing":"^10.0.0","@types/bcrypt":"^6.0.0","@types/express":"^4.17.17","@types/jest":"^29.5.2","@types/node":"^20.3.1","@types/passport-jwt":"^4.0.1","@types/passport-local":"^1.0.38","@types/supertest":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0","@typescript-eslint/parser":"^6.0.0","eslint":"^8.42.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","jest":"^29.5.0","prettier":"^3.0.0","source-map-support":"^0.5.21","supertest":"^6.3.3","ts-jest":"^29.1.0","ts-loader":"^9.4.3","ts-node":"^10.9.1","tsconfig-paths":"^4.2.0","typescript":"^5.1.3"},"jest":{"moduleFileExtensions":["js","json","ts"],"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"collectCoverageFrom":["**/*.(t|j)s"],"coverageDirectory":"../coverage","testEnvironment":"node"},"_id":"@anand_kanzariya_/nestjs-boilerplate@0.0.1","gitHead":"296a19a57038fcb1fb794357f1362d50a0f2acac","_nodeVersion":"20.18.0","_npmVersion":"10.9.0","dist":{"integrity":"sha512-r+gVizrT6RhgaoHngRXyk/aITjZr1oGy/TK8FBZK3E116PK2rt5mLP0QjEfiNtu9ND7QsCyzODpsqjUE9rtunQ==","shasum":"9f5f8e7d681819e176720938b1cc638dd96e7688","tarball":"https://registry.npmjs.org/@anand_kanzariya_/nestjs-boilerplate/-/nestjs-boilerplate-0.0.1.tgz","fileCount":34,"unpackedSize":29561,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICKItTK3s6uJ62fH4AaDIewhwfyDwb4PESi96HLhJVeeAiEAndyLcdi+3fBi/KTBk0D/YgEn20fGvPU4CRAyVSF6ZpY="}]},"_npmUser":{"name":"anand_kanzariya_","email":"contact.anandkanzariya16@gmail.com"},"directories":{},"maintainers":[{"name":"anand_kanzariya_","email":"contact.anandkanzariya16@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/nestjs-boilerplate_0.0.1_1758259221194_0.29630940272366546"},"_hasShrinkwrap":false}},"time":{"created":"2025-09-19T05:20:21.085Z","0.0.1":"2025-09-19T05:20:21.370Z","modified":"2025-09-19T05:20:21.628Z"},"maintainers":[{"name":"anand_kanzariya_","email":"contact.anandkanzariya16@gmail.com"}],"description":"I'm Anand Kanzariya, a skilled Full Stack Developer with expertise in building dynamic and scalable web applications from front-end to back-end.","author":{"name":"Anand Kanzariya"},"license":"UNLICENSED","readme":"# NestJS Boilerplate\r\n\r\nA robust, production-ready REST API backend built with NestJS, featuring authentication, database support, file uploads, mailing, and more.\r\n\r\n## Features\r\n\r\n- **Framework**: NestJS with TypeScript and strict type safety\r\n- **Databases**: PostgreSQL with TypeORM and MongoDB with Mongoose\r\n- **Authentication**: JWT-based auth with Passport.js\r\n- **API Documentation**: Swagger/OpenAPI\r\n- **Validation**: Class-validator with global pipes\r\n- **Versioning**: URI-based API versioning\r\n- **Docker**: Containerized with Docker Compose\r\n- **Configuration**: Environment-based config with @nestjs/config\r\n\r\n## Quick Start\r\n\r\n### Prerequisites\r\n\r\n- Node.js 18+\r\n- npm or yarn\r\n- Docker and Docker Compose (for containerized setup)\r\n\r\n### Local Development\r\n\r\n1. Clone the repository\r\n2. Install dependencies:\r\n   ```bash\r\n   npm install\r\n   ```\r\n3. Copy environment file:\r\n   ```bash\r\n   cp .env.example .env\r\n   ```\r\n4. Update `.env` with your configuration\r\n5. Start databases (if not using Docker):\r\n   - PostgreSQL on port 5432\r\n   - MongoDB on port 27017\r\n6. Create the database:\r\n   ```bash\r\n   npm run db:create\r\n   ```\r\n7. Run the application:\r\n   ```bash\r\n   npm run start:dev\r\n   ```\r\n\r\n### Docker Setup\r\n\r\n1. Build and run with Docker Compose:\r\n   ```bash\r\n   docker-compose up --build\r\n   ```\r\n\r\n## Environment Variables\r\n\r\nCopy `.env.example` to `.env` and configure:\r\n\r\n- `PORT`: Application port (default: 3000)\r\n- `NODE_ENV`: Environment (development/production)\r\n- `DB_*`: PostgreSQL configuration\r\n- `MONGODB_URI`: MongoDB connection string\r\n- `JWT_SECRET`: JWT signing secret\r\n- `MAIL_*`: Email configuration\r\n- `AWS_*`: AWS S3 configuration\r\n- `GOOGLE_*`, `FACEBOOK_*`, `APPLE_*`: Social login credentials\r\n\r\n## API Endpoints\r\n\r\n### Authentication\r\n\r\n- `POST /v1/auth/register` - User registration\r\n- `POST /v1/auth/login` - User login\r\n- `POST /v1/auth/profile` - Get user profile (requires JWT)\r\n\r\n### Health Check\r\n\r\n- `GET /v1/health` - Health check endpoint\r\n\r\n### Documentation\r\n\r\n- Swagger UI: `http://localhost:3000/v1/docs`\r\n\r\n## Project Structure\r\n\r\n```\r\nsrc/\r\n├── app.controller.ts          # Main app controller\r\n├── app.module.ts              # Root module\r\n├── app.service.ts             # Main app service\r\n├── config/\r\n│   └── configuration.ts       # Config factory\r\n├── database/\r\n│   ├── database.module.ts     # TypeORM module\r\n│   └── mongodb.module.ts      # Mongoose module\r\n├── modules/\r\n│   ├── auth/                  # Authentication module\r\n│   │   ├── auth.controller.ts\r\n│   │   ├── auth.module.ts\r\n│   │   ├── auth.service.ts\r\n│   │   ├── dto/\r\n│   │   ├── guards/\r\n│   │   └── strategies/\r\n│   └── user/                  # User module\r\n│       ├── user.entity.ts\r\n│       ├── user.module.ts\r\n│       └── user.service.ts\r\n├── main.ts                    # Application entry point\r\n```\r\n\r\n## Available Scripts\r\n\r\n```bash\r\n# Development\r\nnpm run start          # Start production build\r\nnpm run start:dev      # Start with hot reload\r\nnpm run start:debug    # Start with debugger\r\nnpm run start:prod     # Start production build\r\n\r\n# Testing\r\nnpm run test           # Run unit tests\r\nnpm run test:watch     # Run tests in watch mode\r\nnpm run test:cov       # Run tests with coverage\r\nnpm run test:debug     # Run tests with debugger\r\nnpm run test:e2e       # Run e2e tests\r\n\r\n# Linting & Formatting\r\nnpm run lint           # Run ESLint\r\nnpm run format         # Run Prettier\r\n\r\n# Build\r\nnpm run build          # Build for production\r\n```\r\n\r\n## Docker Commands\r\n\r\n```bash\r\n# Build and start all services\r\ndocker-compose up --build\r\n\r\n# Start in background\r\ndocker-compose up -d\r\n\r\n# Stop services\r\ndocker-compose down\r\n\r\n# View logs\r\ndocker-compose logs -f app\r\n```\r\n\r\n## Contributing\r\n\r\n1. Fork the repository\r\n2. Create a feature branch\r\n3. Make your changes\r\n4. Run tests: `npm run test`\r\n5. Lint: `npm run lint`\r\n6. Submit a pull request\r\n\r\n## License\r\n\r\nThis project is licensed under the MIT License.\r\n","readmeFilename":"README.md","_rev":"1-88cbe790abbd4c79ead0806640fa5a94"}