@jttc/projen-project-types 1.0.0-beta.1 β†’ 1.0.0-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,55 +1,212 @@
1
- # Projen Project Types
1
+ # πŸ—οΈ Projen Project Types
2
2
 
3
- A collection of opinionated custom project templates for [projen.io](https://projen.io).
3
+ > **Opinionated project templates for [projen.io](https://projen.io) that accelerate development with best practices built-in**
4
4
 
5
- ## Overview
5
+ [![npm version](https://img.shields.io/npm/v/@jttc/projen-project-types)](https://www.npmjs.com/package/@jttc/projen-project-types)
6
+ [![License: Apache-2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
7
+ [![Documentation](https://img.shields.io/badge/docs-mkdocs-blue)](https://jumptothecloud.github.io/projen-project-types/)
8
+ [![GitHub](https://img.shields.io/github/stars/JumpToTheCloud/projen-project-types?style=social)](https://github.com/JumpToTheCloud/projen-project-types)
6
9
 
7
- This repository provides curated project types that extend projen's capabilities with opinionated configurations and best practices. These project types are designed to accelerate development workflows while maintaining consistency and quality across projects.
10
+ ## ✨ What is this?
8
11
 
9
- ## Requirements
12
+ This package provides **ready-to-use project templates** that extend [projen](https://projen.io) with opinionated configurations, saving you hours of setup time while ensuring consistency and best practices across your projects.
10
13
 
11
- ### Documentation
14
+ Instead of manually configuring Prettier, ESLint, VSCode settings, CI/CD pipelines, and other tools for every project, these templates give you everything pre-configured and battle-tested.
12
15
 
13
- This project uses MkDocs for documentation. To work with the documentation locally, you need to install the following dependencies:
16
+ ## πŸš€ Quick Start
14
17
 
15
18
  ```bash
16
- # Install MkDocs and Material theme
17
- pip3 install mkdocs mkdocs-material
19
+ # Create a CDK construct library
20
+ npx projen new --from @jttc/projen-project-types cdk-library
18
21
 
19
- # Install Mike for documentation versioning
20
- pip3 install mike
22
+ # Create a CDK application
23
+ npx projen new --from @jttc/projen-project-types cdk-app
24
+
25
+ # Create a CDK8s construct library with Kubernetes support
26
+ npx projen new --from @jttc/projen-project-types cdk8s-library
21
27
  ```
22
28
 
23
- ### Development Commands
29
+ ## πŸ“¦ Available Project Types
30
+
31
+ | Project Type | Description | Best For |
32
+ |--------------|-------------|----------|
33
+ | **[CDK Library](https://jumptothecloud.github.io/projen-project-types/project-types/cdk-library/)** | AWS CDK construct libraries | Creating reusable AWS infrastructure components |
34
+ | **[CDK App](https://jumptothecloud.github.io/projen-project-types/project-types/cdk-app/)** | AWS CDK applications | Building and deploying AWS infrastructure |
35
+ | **[CDK8s Library](https://jumptothecloud.github.io/projen-project-types/project-types/cdk8s-library/)** | CDK8s libraries with Kubernetes | Creating reusable Kubernetes constructs |
36
+
37
+ ## 🧩 Available Components
38
+
39
+ | Component | Description | Documentation |
40
+ |-----------|-------------|---------------|
41
+ | **[CDK8s Component](https://jumptothecloud.github.io/projen-project-types/components/cdk8s/)** | Kubernetes manifest generation with TypeScript | Add to any project type |
42
+
43
+ ## ⚑ What You Get Out of the Box
44
+
45
+ Every project template includes:
46
+
47
+ - 🎨 **[Prettier](https://jumptothecloud.github.io/projen-project-types/default-configurations/#prettier-configuration)** - Consistent code formatting
48
+ - πŸ”§ **[VSCode Setup](https://jumptothecloud.github.io/projen-project-types/default-configurations/#vscode-configuration)** - Optimized editor experience with recommended extensions
49
+ - πŸ“ **TypeScript** - Best practices and configurations
50
+ - πŸ§ͺ **Jest Testing** - Ready-to-use testing framework
51
+ - 🚒 **CI/CD Pipelines** - GitHub Actions workflows
52
+ - πŸ“š **Documentation** - Auto-generated API docs
53
+ - πŸ”’ **Security** - Dependabot and security scanning
54
+
55
+ ## πŸ’‘ Example Usage
56
+
57
+ ### CDK Library with Custom Configuration
58
+
59
+ ```typescript
60
+ // .projenrc.ts
61
+ import { CdkLibrary } from '@jttc/projen-project-types';
62
+
63
+ const project = new CdkLibrary({
64
+ name: 'my-awesome-constructs',
65
+ author: 'Your Name',
66
+ authorAddress: 'your@email.com',
67
+ repositoryUrl: 'https://github.com/yourusername/my-awesome-constructs.git',
68
+ cdkVersion: '2.1.0',
69
+ defaultReleaseBranch: 'main',
70
+
71
+ // Customize as needed
72
+ prettier: true,
73
+ vscode: true,
74
+ });
75
+
76
+ project.synth();
77
+ ```
78
+
79
+ ### CDK8s Library with Kubernetes Support
80
+
81
+ ```typescript
82
+ // .projenrc.ts
83
+ import { Cdk8sLibrary, K8sVersion } from '@jttc/projen-project-types';
84
+
85
+ const project = new Cdk8sLibrary({
86
+ name: 'my-k8s-constructs',
87
+ author: 'Your Name',
88
+ authorAddress: 'your@email.com',
89
+ repositoryUrl: 'https://github.com/yourusername/my-k8s-constructs.git',
90
+ cdkVersion: '2.1.0',
91
+ defaultReleaseBranch: 'main',
92
+
93
+ // CDK8s specific options
94
+ k8sVersion: K8sVersion.V1_31,
95
+ appPath: 'src/k8s',
96
+ imports: ['cert-manager@v1.13.0'],
97
+ });
98
+
99
+ project.synth();
100
+ ```
101
+
102
+ ## πŸ—οΈ Architecture
103
+
104
+ ```
105
+ projen-project-types/
106
+ β”œβ”€β”€ πŸ“ Project Types/ # Complete project templates
107
+ β”‚ β”œβ”€β”€ CDK Library # AWS CDK construct libraries
108
+ β”‚ β”œβ”€β”€ CDK App # AWS CDK applications
109
+ β”‚ └── CDK8s Library # Kubernetes + CDK8s libraries
110
+ β”œβ”€β”€ 🧩 Components/ # Reusable functionality
111
+ β”‚ └── CDK8s Component # Kubernetes manifest generation
112
+ └── βš™οΈ Common Config/ # Shared configurations
113
+ β”œβ”€β”€ Prettier # Code formatting
114
+ β”œβ”€β”€ VSCode # Editor setup
115
+ └── TypeScript # Language configuration
116
+ ```
117
+
118
+ ## πŸ“š Documentation
119
+
120
+ Comprehensive documentation is available at: **[jumptothecloud.github.io/projen-project-types](https://jumptothecloud.github.io/projen-project-types/)**
24
121
 
25
- Once the requirements are installed, you can use the following commands:
122
+ - **[Getting Started Guide](https://jumptothecloud.github.io/projen-project-types/)**
123
+ - **[Project Types](https://jumptothecloud.github.io/projen-project-types/project-types/cdk-library/)**
124
+ - **[Components](https://jumptothecloud.github.io/projen-project-types/components/cdk8s/)**
125
+ - **[Default Configurations](https://jumptothecloud.github.io/projen-project-types/default-configurations/)**
126
+
127
+ ## πŸ› οΈ Development
128
+
129
+ ### Prerequisites
130
+
131
+ - **Node.js** (v18+)
132
+ - **Yarn** package manager
133
+ - **Python 3** (for documentation)
134
+
135
+ ### Setup
26
136
 
27
137
  ```bash
28
- # Build the documentation
29
- yarn docs:build
138
+ # Clone the repository
139
+ git clone https://github.com/JumpToTheCloud/projen-project-types.git
140
+ cd projen-project-types
141
+
142
+ # Install dependencies
143
+ yarn install
30
144
 
31
- # Serve the documentation locally (with live reload)
145
+ # Run tests
146
+ yarn test
147
+
148
+ # Build the project
149
+ yarn build
150
+ ```
151
+
152
+ ### Documentation Development
153
+
154
+ ```bash
155
+ # Install documentation dependencies
156
+ pip3 install mkdocs mkdocs-material mike
157
+
158
+ # Serve documentation locally with hot reload
32
159
  yarn docs:serve
160
+
161
+ # Build documentation
162
+ yarn docs:build
33
163
  ```
34
164
 
35
- The documentation will be available at `http://localhost:8000` when using the serve command.
165
+ The documentation will be available at `http://localhost:8099` when using the serve command.
166
+
167
+ ## πŸ—ΊοΈ Roadmap
168
+
169
+ Planned features and project types:
170
+
171
+ - **Next.js Projects** - Full-stack TypeScript applications
172
+ - **Node.js APIs** - REST and GraphQL API templates
173
+ - **React Libraries** - Component library templates
174
+ - **Terraform Modules** - Infrastructure as Code templates
175
+ - **Docker Components** - Containerization support
176
+ - **Serverless Functions** - AWS Lambda and other FaaS templates
177
+
178
+ ## 🀝 Contributing
179
+
180
+ We welcome contributions! Here's how to get started:
181
+
182
+ 1. **Fork the repository**
183
+ 2. **Create a feature branch**: `git checkout -b feature/amazing-feature`
184
+ 3. **Make your changes** and add tests
185
+ 4. **Run tests**: `yarn test`
186
+ 5. **Update documentation** if needed
187
+ 6. **Commit your changes**: `git commit -m 'Add amazing feature'`
188
+ 7. **Push to the branch**: `git push origin feature/amazing-feature`
189
+ 8. **Open a Pull Request**
190
+
191
+ ### Contribution Guidelines
36
192
 
37
- ## Features
193
+ - All new features should include tests
194
+ - Documentation should be updated for new project types or components
195
+ - Follow the existing code style and patterns
196
+ - Ensure all CI checks pass
38
197
 
39
- - πŸš€ **Ready-to-use project templates** for various use cases
40
- - πŸ“¦ **Integrated tooling** with sensible defaults
41
- - πŸ”§ **Customizable configurations** to fit your needs
42
- - πŸ“š **Comprehensive documentation** with MkDocs Material theme
43
- - πŸ”„ **Continuous integration** templates included
198
+ ## ❓ Support
44
199
 
45
- ## Getting Started
200
+ - **Documentation**: [jumptothecloud.github.io/projen-project-types](https://jumptothecloud.github.io/projen-project-types/)
201
+ - **Issues**: [GitHub Issues](https://github.com/JumpToTheCloud/projen-project-types/issues)
202
+ - **Discussions**: [GitHub Discussions](https://github.com/JumpToTheCloud/projen-project-types/discussions)
46
203
 
47
- More detailed documentation and project types will be added as features are developed. Visit the documentation site for the latest information.
204
+ ## πŸ“„ License
48
205
 
49
- ## Contributing
206
+ This project is licensed under the **Apache 2.0 License** - see the [LICENSE](LICENSE) file for details.
50
207
 
51
- Contributions are welcome! Please feel free to submit issues, feature requests, or pull requests to help improve these project types.
208
+ ## 🌟 Credits
52
209
 
53
- ## License
210
+ Built with ❀️ by the [JumpToTheCloud](https://github.com/JumpToTheCloud) team.
54
211
 
55
- This project is licensed under the terms specified in the LICENSE file.
212
+ Special thanks to the [projen](https://projen.io) community for creating such an amazing tool for project configuration management.