{"id":20337109,"url":"https://github.com/fless-lab/Node-TypeScript-Wizard","last_synced_at":"2025-05-08T02:31:42.758Z","repository":{"id":257871636,"uuid":"861936126","full_name":"fless-lab/Node-TypeScript-Wizard","owner":"fless-lab","description":"A base project template for Node.js API applications built with TypeScript. Includes configurations for Docker, authentication, logging, and basic CRUD operations. Perfect for rapid scaffolding with the NTW CLI (based on node-ts-starter).","archived":false,"fork":false,"pushed_at":"2025-04-29T16:36:17.000Z","size":332,"stargazers_count":3,"open_issues_count":1,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-29T17:39:52.103Z","etag":null,"topics":["api","hacktoberfest","node","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fless-lab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-09-23T18:38:25.000Z","updated_at":"2025-04-21T19:55:36.000Z","dependencies_parsed_at":"2025-01-13T09:31:49.224Z","dependency_job_id":"c0fc7f27-9bf7-4ce4-949e-1e99dd28e2f7","html_url":"https://github.com/fless-lab/Node-TypeScript-Wizard","commit_stats":null,"previous_names":["fless-lab/ntw-init","fless-lab/node-typescript-wizard"],"tags_count":4,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fless-lab%2FNode-TypeScript-Wizard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fless-lab%2FNode-TypeScript-Wizard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fless-lab%2FNode-TypeScript-Wizard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fless-lab%2FNode-TypeScript-Wizard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fless-lab","download_url":"https://codeload.github.com/fless-lab/Node-TypeScript-Wizard/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252986832,"owners_count":21836236,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","hacktoberfest","node","typescript"],"created_at":"2024-11-14T21:08:04.173Z","updated_at":"2025-05-08T02:31:42.747Z","avatar_url":"https://github.com/fless-lab.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Node-TypeScript-Wizard\n\nA robust and scalable starter project for Node.js, Express, MongoDB, TypeScript, and more. This project provides a solid foundation for developing modern backend applications with a modular architecture and advanced security features.\n\n## 🌟 Features\n\n### 🔐 Authentication \u0026 Security\n- JWT Authentication with refresh tokens\n- OTP (One-Time Password) system for:\n  - Account verification\n  - Password reset\n  - Secure login\n  - Email update\n  - Phone verification\n- Protection against common attacks (CSRF, XSS, etc.)\n- Rate limiting and brute force protection\n- Secure session management\n\n### 📧 Email System\n- HTML and text email templates\n- Email queue with Bull\n- Templates for:\n  - Account creation\n  - Account verification\n  - Password reset\n  - OTP login\n  - Password reset confirmation\n\n### 🏗 Architecture\n- Modular and scalable architecture\n- Repository pattern for data access\n- Centralized error handling\n- Advanced logging\n- Flexible configuration\n\n### 🛠 Technologies\n- Node.js \u0026 Express\n- TypeScript\n- MongoDB with Mongoose\n- Redis for caching and sessions\n- Bull for queues\n- JWT for authentication\n- Nodemailer for emails\n- Jest for testing\n\n## 🚀 Installation\n\n### Prerequisites\n- Node.js (v14 or higher)\n- MongoDB\n- Redis\n- Docker (optional)\n\n### Local Installation\n\n1. Clone the repository:\n```bash\ngit clone https://github.com/fless-lab/Node-TypeScript-Wizard.git\ncd Node-TypeScript-Wizard\n```\n\n2. Install dependencies:\n```bash\nnpm install\n```\n\n3. Configure environment variables:\n```bash\ncp .env.example .env\n# Edit .env with your configurations\n```\n\n4. Start in development mode:\n```bash\nnpm run start\n```\n\n### Docker Installation\n\n```bash\n# Start in development mode\nnpm run docker:launch\n\n# Start in production mode\nnpm run docker:launch:prod\n```\n\n## 📁 Project Structure\n\n```\n├── src/\n│   ├── apps/                 # Main applications and modules\n│   ├── modules/             # Shared modules\n│   │   ├── authz/          # Authentication and authorization\n│   │   ├── features/       # Business features\n│   │   └── shared/         # Shared utilities\n│   └── server.ts           # Entry point\n├── templates/              # Email templates\n├── tests/                 # Unit and e2e tests\n├── docs/                  # Documentation\n└── ...\n```\n\n## 🔧 Configuration\n\nThe project uses a flexible configuration system based on environment variables. Main configurations include:\n\n- Database configuration\n- Redis configuration\n- JWT configuration\n- Email configuration\n- Security configuration\n- Logging configuration\n\n## 📝 API Endpoints\n\n### Authentication\n- `POST /auth/register` - Registration\n- `POST /auth/login` - Login\n- `POST /auth/refresh` - Refresh token\n- `POST /auth/logout` - Logout\n- `POST /auth/forgot-password` - Password reset request\n- `POST /auth/reset-password` - Password reset\n\n### OTP\n- `POST /auth/otp/generate` - Generate OTP\n- `POST /auth/otp/validate` - Validate OTP\n\n## 🧪 Testing\n\n```bash\n# Run all tests\nnpm test\n\n# Run tests with coverage\nnpm run test:coverage\n\n# Run e2e tests\nnpm run test:e2e\n\n# Run tests in watch mode\nnpm run test:watch\n```\n\n## 📧 Email Templates\n\nThe project includes email templates for different use cases:\n\n- `account-creation` - Account creation\n- `email-verification` - Email verification\n- `otp-login` - OTP login\n- `otp-reset-password` - Password reset\n- `password-reset-confirmation` - Password reset confirmation\n- `account-verified` - Account verified\n\n## 🔐 Security\n\nThe project implements several security measures:\n\n- CSRF protection\n- Security headers with Helmet\n- Rate limiting\n- Input validation\n- Secure session management\n- Brute force protection\n\n## 📈 Monitoring and Logging\n\n- Structured logging with Winston\n- Queue monitoring with Bull Board\n- Request tracing with Morgan\n\n## 🤝 Contributing\n\nContributions are welcome! Please check [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.\n\n## 📄 License\n\nThis project is licensed under the ISC License. See the [LICENSE](LICENSE) file for details.\n\n## 👥 Authors\n\n- fless-lab\n\n## 🙏 Acknowledgments\n\n- All contributors\n- The open source community","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffless-lab%2FNode-TypeScript-Wizard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffless-lab%2FNode-TypeScript-Wizard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffless-lab%2FNode-TypeScript-Wizard/lists"}