nova-cli 0.1.0

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.
@@ -0,0 +1,134 @@
1
+ # Project Implementation Tasks
2
+
3
+ A list of implementation tasks for the Customer Portal Application.
4
+
5
+ ## 1. Rails Application Setup
6
+ Initialize a Rails 8 application with PostgreSQL, Tailwind CSS, Rspec, and Flowbite.
7
+
8
+ ```
9
+ rails _8.0.2_ new app_name --database=postgresql --css=tailwind
10
+ cd app_name
11
+ bundle exec rails tailwindcss:install
12
+ bundle exec rails db:create db:migrate
13
+ bundle exec rails rspec:install
14
+ ```
15
+
16
+ Create a Hello World page that is styled with Tailwind CSS and Flowbite (simple tooltip) so we can confirm both are working.
17
+
18
+ ### Flowbite Setup
19
+ Importmap is the default way of handling JavaScript in Rails. In order to support turbo load from importmaps you have to pin the flowbite.turbo.js file from a CDN where the turbo:load event listeners are added instead of load.
20
+
21
+ Add the following line inside your importmap.rb file:
22
+ pin "flowbite", to: "https://cdn.jsdelivr.net/npm/flowbite@3.1.2/dist/flowbite.turbo.min.js"
23
+ Then you need to import flowbite inside your application.js file:
24
+ import 'flowbite';
25
+ This will enable the interactive elements like dropdowns, modals, and navbars work by hooking the event listeners and actions to the data attributes whenever a new page is loaded in your application.
26
+
27
+ ### Gems
28
+ - Figaro for env variables
29
+ - Decanter for handling incoming params: https://github.com/LaunchPadLab/decanter
30
+ - Active Storage (for file attachments)
31
+
32
+ Testing:
33
+ - Factory Bot for testing
34
+ - Faker
35
+ - DatabaseCleaner
36
+ - Shoulda Matchers
37
+ - RSpec Rails
38
+ - Capybara
39
+ - SimpleCov
40
+
41
+ **Related Artifacts:**
42
+ - [PRD](../1_big-picture/prd.md)
43
+
44
+ ## 2. Authentication System
45
+ Implement user registration, login functionality, password reset, and role-based permissions using Devise.
46
+
47
+ **Related Artifacts:**
48
+ - [Authentication Requirements](../1_big-picture/prd_example.md#authentication)
49
+ - [User Flow](../1_big-picture/flowchart.md#authentication-flow)
50
+ - [Login User Story](../2_user-stories/authentication.md#user-login)
51
+ - [Registration User Story](../2_user-stories/authentication.md#user-registration)
52
+
53
+ ## 3. Core Database Structure
54
+ Design the database schema, create models with associations, set up validations, and implement seed data for development.
55
+
56
+ **Related Artifacts:**
57
+ - [Data Model Overview](../1_big-picture/prd_example.md#data-model)
58
+ - [Entity Relationship Diagram](../1_big-picture/flowchart.md#entity-relationships)
59
+ - [Data Requirements](../2_user-stories/data_requirements.md)
60
+
61
+ ## 4. Dashboard Implementation
62
+ Create a responsive dashboard with quick stats widgets, activity feed, and notification system.
63
+
64
+ **Related Artifacts:**
65
+ - [Dashboard Requirements](../1_big-picture/prd_example.md#dashboard)
66
+ - [Dashboard User Story](../2_user-stories/dashboard.md)
67
+
68
+ ## 5. Customer Management
69
+ Build CRUD operations for customer data with search, filtering, detailed views, and history tracking.
70
+
71
+ **Related Artifacts:**
72
+ - [Customer Management Requirements](../1_big-picture/prd_example.md#customer-management)
73
+ - [Customer User Stories](../2_user-stories/customers.md)
74
+
75
+ ## 6. Document Management
76
+ Implement document upload, versioning, PDF generation for invoices, and document sharing capabilities.
77
+
78
+ **Related Artifacts:**
79
+ - [Document Management Requirements](../1_big-picture/prd_example.md#document-management)
80
+ - [Document Flow](../1_big-picture/flowchart.md#document-flow)
81
+ - [Document User Stories](../2_user-stories/documents.md)
82
+
83
+ ## 7. Reporting System
84
+ Create report templates with data aggregation, visual charts, and export functionality.
85
+
86
+ **Related Artifacts:**
87
+ - [Reporting Requirements](../1_big-picture/prd_example.md#reporting)
88
+ - [Report User Stories](../2_user-stories/reports.md)
89
+
90
+ ## 8. API Integration
91
+ Design API endpoints with authentication, third-party integrations, and webhook functionality.
92
+
93
+ **Related Artifacts:**
94
+ - [API Requirements](../1_big-picture/prd_example.md#api-integration)
95
+ - [Integration Flow](../1_big-picture/flowchart.md#integration-flow)
96
+ - [API User Stories](../2_user-stories/api.md)
97
+
98
+ ## 9. Real-time Features
99
+ Implement WebSocket connections for real-time notifications, collaborative editing, and chat functionality.
100
+
101
+ **Related Artifacts:**
102
+ - [Real-time Requirements](../1_big-picture/prd_example.md#real-time-features)
103
+ - [Real-time Communication Flow](../1_big-picture/flowchart.md#real-time-flow)
104
+ - [Chat User Story](../2_user-stories/real_time.md#chat)
105
+ - [Notification User Story](../2_user-stories/real_time.md#notifications)
106
+
107
+ ## 10. Performance Optimization
108
+ Implement caching, optimize database queries, set up background job processing, and conduct load testing.
109
+
110
+ **Related Artifacts:**
111
+ - [Performance Requirements](../1_big-picture/prd_example.md#performance)
112
+ - [System Load Estimates](../1_big-picture/prd_example.md#load-estimates)
113
+
114
+ ## 11. Security Hardening
115
+ Perform security audit, implement security measures, set up monitoring and logging.
116
+
117
+ **Related Artifacts:**
118
+ - [Security Requirements](../1_big-picture/prd_example.md#security)
119
+ - [Privacy Requirements](../1_big-picture/prd_example.md#privacy)
120
+ - [Security User Stories](../2_user-stories/security.md)
121
+
122
+ ## 12. Deployment & Launch
123
+ Finalize production environment, create deployment scripts, develop rollback procedures, and execute launch.
124
+
125
+ **Related Artifacts:**
126
+ - [Deployment Strategy](../1_big-picture/prd_example.md#deployment)
127
+ - [Launch Plan](../1_big-picture/prd_example.md#launch-plan)
128
+ - [Rollback Procedures](../1_big-picture/prd_example.md#rollback)
129
+
130
+ ### Production Gems
131
+ - Redis (for caching)
132
+ - Sidekiq (for background jobs)
133
+ - Sentry (for error tracking)
134
+ - Aws S3 (for file storage)
@@ -0,0 +1,94 @@
1
+ # Generate Application
2
+
3
+ This prompt is for the initial setup of the Rails application with the core dependencies required for the project.
4
+
5
+ ## Task Description
6
+
7
+ Initialize a Rails 8 application with PostgreSQL, Tailwind CSS, Rspec, Flowbite, and Cypress.
8
+
9
+ ### Steps
10
+
11
+ 1. Create a new Rails application with the following command:
12
+ ```
13
+ rails _8.0.2_ new app_name --database=postgresql --css=tailwind
14
+ cd app_name
15
+ bundle exec rails tailwindcss:install
16
+ bundle exec rails db:create db:migrate
17
+ bundle exec rails rspec:install
18
+ ```
19
+
20
+ **Tailwind Note**: Please read the latest v4 docs here before trying to work with Tailwind as a lot has changed since v3 such as the ability to load colors in global.css instead of needing a tailwind config file: https://tailwindcss.com/blog/tailwindcss-v4
21
+
22
+ Make sure rspec works: `bundle exec rspec`
23
+
24
+ 2. Set up the following gems in the Gemfile:
25
+
26
+ #### Core Gems
27
+ - Figaro (for environment variables)
28
+ - Decanter (for handling incoming params): https://github.com/LaunchPadLab/decanter
29
+ - Active Storage (for file attachments)
30
+
31
+ #### Testing Gems
32
+ - Factory Bot Rails
33
+ - Faker
34
+ - DatabaseCleaner
35
+ - Shoulda Matchers
36
+ - RSpec Rails
37
+ - Capybara
38
+ - SimpleCov
39
+
40
+ #### Production Gems
41
+ - Redis (for caching)
42
+ - Sidekiq (for background jobs)
43
+ - Sentry (for error tracking)
44
+ - AWS S3 SDK (for file storage)
45
+
46
+ 3. Set up Flowbite for interactive components:
47
+
48
+ Importmap is the default way of handling JavaScript in Rails. To support turbo load:
49
+
50
+ Add the following line inside your importmap.rb file:
51
+ ```ruby
52
+ pin "flowbite", to: "https://cdn.jsdelivr.net/npm/flowbite@3.1.2/dist/flowbite.turbo.min.js"
53
+ ```
54
+
55
+ Then import flowbite inside your application.js file:
56
+ ```javascript
57
+ import 'flowbite';
58
+ ```
59
+
60
+ 4. Create a Hello World page with Tailwind CSS and Flowbite to confirm both are working properly:
61
+ - Include a simple styled page
62
+ - Add a simple Flowbite component (tooltip) for testing
63
+
64
+ 5. Set up Cypress for headless E2E testing:
65
+ ```bash
66
+ yarn add cypress --dev
67
+ ```
68
+
69
+ Create a simple E2E test for the Hello World page:
70
+ ```javascript
71
+ // cypress/e2e/hello_world_spec.cy.js
72
+ describe('Hello World Page', () => {
73
+ it('successfully loads', () => {
74
+ cy.visit('http://localhost:3000')
75
+ cy.contains('Hello World')
76
+ cy.get('[data-tooltip-target]').should('exist')
77
+ })
78
+ })
79
+ ```
80
+
81
+ Add script to package.json for headless testing:
82
+ ```json
83
+ "scripts": {
84
+ "test:e2e": "cypress run"
85
+ }
86
+ ```
87
+
88
+ Run the test headlessly:
89
+ ```bash
90
+ yarn test:e2e
91
+ ```
92
+
93
+ ## Related Artifacts
94
+ - [PRD](../1_big-picture/prd.md)
@@ -0,0 +1,26 @@
1
+ # Generate Static Styleguide
2
+
3
+ This prompt is for creating a static styleguide application based on the design system decisions, user stories, PRD, and flowchart.
4
+
5
+ ## Task Description
6
+
7
+ Using the design decisions from `../3_design-system/design_decisions.md`, create a styleguide within the application (in the code/ directory) that showcase the colors, typography, componentry, and example forms. Please nest all pages within this under /styleguide route as follows:
8
+ - Styleguide Home: /styleguide
9
+ - Colors: /styleguide/colors
10
+ - Typography: /styleguide/typography
11
+ - Componentry: /styleguide/componentry
12
+ - Forms: /styleguide/forms
13
+ - Authenticated Layout: /styleguide/authenticated
14
+ - Unauthenticated Layout: /styleguide/unauthenticated
15
+
16
+ Create the static styleguide with:
17
+ - Tailwind CSS for utility-based styling
18
+ - Flowbite for interactive components (modals, tooltips, etc.)
19
+ - HTML structure that follows the design system
20
+
21
+ **Tailwind Note**: Please read the latest v4 docs here before trying to work with Tailwind as a lot has changed since v3 such as the ability to load colors in global.css instead of needing a tailwind config file: https://tailwindcss.com/blog/tailwindcss-v4
22
+
23
+ ## Related Artifacts
24
+ - [PRD](../1_big-picture/prd.md)
25
+ - [Flowchart](../1_big-picture/flowchart.md)
26
+ - [Design Decisions](../3_design-system/design_decisions.md)
@@ -0,0 +1,26 @@
1
+ # Generate Static Front-end Pages
2
+
3
+ This prompt is for creating the static front-end pages based on the design system, user stories, PRD, and flowchart.
4
+
5
+ ## Task Description
6
+
7
+ Implement the core static front-end pages for the application using the design system styleguide as a reference.
8
+
9
+ Using the design system styleguide and flowchart from the big picture directory, implement the following pages:
10
+ - Create the main pages defined in the flowchart
11
+ - Implement layouts using Tailwind CSS classes consistent with the styleguide
12
+ - Add Flowbite components for interactive elements
13
+ - Ensure all pages are responsive and follow the design patterns
14
+
15
+ For each page:
16
+ - Include proper routing
17
+ - Set up navigation between pages
18
+ - Create placeholder content where dynamic data will eventually be used
19
+ - Implement form structures (without actual functionality yet)
20
+ - Connect the pages with a consistent navigation structure as defined in the flowchart
21
+
22
+ ## Related Artifacts
23
+ - [PRD](../1_big-picture/prd.md)
24
+ - [Design System](../3_design-system/design_decisions.md)
25
+ - [Flowchart](../1_big-picture/flowchart.md)
26
+ - [User Stories](../2_user-stories/)
@@ -0,0 +1,41 @@
1
+ # Authentication Feature Implementation
2
+
3
+ This prompt is for implementing the authentication system for the application.
4
+
5
+ ## Task Description
6
+
7
+ Implement a complete user authentication system with registration, login, password reset, and role-based permissions using Devise.
8
+
9
+ ### Steps
10
+
11
+ 1. Add and configure Devise gem for Rails authentication:
12
+ - Install Devise
13
+ - Generate User model with appropriate attributes
14
+ - Configure Devise modules (registerable, recoverable, rememberable, validatable)
15
+ - Set up role-based authorization
16
+
17
+ 2. Customize authentication views to match the application design:
18
+ - Override Devise default views
19
+ - Apply the design system styles from the styleguide
20
+ - Implement form validations with appropriate error messages
21
+
22
+ 3. Implement additional authentication features:
23
+ - Email verification
24
+ - Password reset flow
25
+ - Remember me functionality
26
+ - Session management
27
+
28
+ 4. Add role-based access controls:
29
+ - Create role-based permissions system
30
+ - Implement policies for different user types
31
+ - Add authorization checks to controllers and views
32
+
33
+ 5. Create user profile management:
34
+ - Profile editing functionality
35
+ - Account settings
36
+ - Password change forms
37
+
38
+ ## Related Artifacts
39
+ - [Authentication Requirements](../1_big-picture/prd.md#authentication)
40
+ - [User Flow](../1_big-picture/flowchart.md#authentication-flow)
41
+ - [Design System](../3_design-system/design_decisions.md)
@@ -0,0 +1,27 @@
1
+ # Development Prompts
2
+
3
+ This directory contains a list of development prompts for implementing your application based on the planning documents.
4
+
5
+ ## Purpose
6
+
7
+ Development prompts help create a logical sequence for building your application, making it easier to communicate implementation needs to developers or AI assistants.
8
+
9
+ ## How to Use
10
+
11
+ 1. Create separate prompt files for each major development phase:
12
+ - `01_generate_app.md` - Initial application setup with core dependencies
13
+ - `02_generate_styleguide.md` - Design system implementation
14
+ - `03_generate_static_pages.md` - Core pages based on the flowchart in the big picture directory
15
+ - Feature-specific prompts (e.g., `04_authentication.md`, `05_dashboard.md`, etc.)
16
+ 2. For each prompt file:
17
+ - Follow the structure in the examples directory
18
+ - Reference the PRD for technology stack guidance and requirements
19
+ - Link relevant artifacts within each prompt so that the AI Agent can understand the context and dependencies
20
+ 3. When ready to implement, use each prompt file individually with the AI Agent
21
+ 4. If an issue occurs during the implementation, work with the AI Agent to correct the documentation and prompt, then re-prompt the AI Agent
22
+
23
+ Note: for 01_generate_app, 02_generate_styleguide, and 03_generate_static_pages prompts, follow the examples provided exactly unless the user explicitly tells you otherwise.
24
+
25
+ ## Example
26
+
27
+ See `prompts_example.md` in this directory for an example of how to structure your development task list.
@@ -0,0 +1,74 @@
1
+ # Product Development Workflow
2
+
3
+ Welcome to the Product Documentation for [project name]! This repository contains a structured workflow for planning, designing, and implementing product features.
4
+
5
+ ---
6
+
7
+ ## The Nova Process
8
+
9
+ The Nova process guides product development through a series of steps, each building on the previous one to create a comprehensive plan for implementation:
10
+
11
+ 1. **Big Picture** → Define the strategic vision and goals
12
+ 2. **User Stories** → Break down the vision into specific user needs
13
+ 3. **Design System** → Establish the visual language and UI components
14
+ 4. **AI Dev Prompts** → Create development prompts for AI-assisted development
15
+
16
+ Each step has its own directory with specialized templates and examples to guide your work.
17
+
18
+ ---
19
+
20
+ ## Directory Structure
21
+
22
+ ```
23
+ [project_name]/
24
+ ├── nova/
25
+ │ ├── README.md
26
+ │ ├── 1_big-picture/
27
+ │ │ ├── README.md
28
+ │ │ ├── prd_example.md
29
+ │ │ ├── flowchart.md
30
+ │ ├── 2_user-stories/
31
+ │ │ ├── README.md
32
+ │ │ └── example.md
33
+ │ ├── 3_design-system/
34
+ │ │ ├── README.md
35
+ │ │ └── design_decisions.md
36
+ │ ├── 4_prompts/
37
+ │ │ ├── README.md
38
+ │ │ └── example.md
39
+ ├── code/
40
+ ```
41
+
42
+ ---
43
+
44
+ ## Getting Started
45
+
46
+ 1. Start with the **1_big-picture** directory to define the project's foundation
47
+ 2. Work through each numbered step in sequential order
48
+ 3. Each directory contains:
49
+ - **README.md**: Instructions and best practices for that step
50
+ - **template.md**: A starting point for creating new documents
51
+ - **example.md**: A reference showing how completed documents should look
52
+
53
+ Follow the guidance in each README to create a comprehensive product development plan.
54
+
55
+ ---
56
+
57
+ ## Best Practices
58
+
59
+ - **Start with Why**: Always begin by understanding the strategic purpose behind the project
60
+ - **Focus on User Value**: Keep the user's needs at the center of all planning
61
+ - **Be Specific**: Include enough detail for implementation but avoid over-specification
62
+ - **Maintain Traceability**: Ensure each document references related documents from previous steps
63
+ - **Collaborate Across Disciplines**: Involve all relevant team members in the appropriate steps
64
+ - **Iterate and Refine**: The process is not strictly linear - revisit and update documents as you learn
65
+
66
+ ---
67
+
68
+ ## Additional Resources
69
+
70
+ - **Nova Gem Documentation**: [Link to documentation]
71
+ - **Product Planning Best Practices**: [Link to resources]
72
+ - **AI Development Guidelines**: [Link to guidelines]
73
+
74
+ For questions or suggestions to improve this process, please contact Ryan Francis (ryan@launchpadlab.com).