Initial commit: ROA2WEB - FastAPI + Vue.js + Telegram Bot
Modern ERP Reports Application with microservices architecture Tech Stack: - Backend: FastAPI + python-oracledb (Oracle DB integration) - Frontend: Vue.js 3 + PrimeVue + Vite - Telegram Bot: python-telegram-bot + SQLite - Infrastructure: Shared database pool, JWT authentication, SSH tunnel Features: - FastAPI backend with async Oracle connection pool - Vue.js 3 responsive frontend with PrimeVue components - Telegram bot alternative interface - Microservices architecture with shared components - Complete deployment support (Linux Docker + Windows IIS) - Comprehensive testing (Playwright E2E + pytest) Repository Structure: - reports-app/ - Main application (backend, frontend, telegram-bot) - shared/ - Shared components (database pool, auth, utils) - deployment/ - Deployment scripts (Linux & Windows) - docs/ - Project documentation - security/ - Security scanning and git hooks
This commit is contained in:
57
.claude/agents/feature-planner.md
Normal file
57
.claude/agents/feature-planner.md
Normal file
@@ -0,0 +1,57 @@
|
||||
---
|
||||
name: feature-planner
|
||||
description: Use this agent when you need to plan the implementation of a new feature for the ROA2WEB project. Examples: <example>Context: User wants to add a new reporting dashboard feature to the FastAPI/Vue.js application. user: 'I need to add a user activity dashboard that shows login history and report generation statistics' assistant: 'I'll use the feature-planner agent to analyze the current codebase and create a comprehensive implementation plan.' <commentary>Since the user is requesting a new feature plan, use the feature-planner agent to analyze the current project structure and create a detailed implementation strategy.</commentary></example> <example>Context: User wants to implement real-time notifications in the application. user: 'We need to add real-time notifications when reports are ready for download' assistant: 'Let me use the feature-planner agent to examine the current architecture and design an efficient notification system.' <commentary>The user is requesting a new feature implementation, so use the feature-planner agent to create a comprehensive plan.</commentary></example>
|
||||
model: opus
|
||||
color: purple
|
||||
---
|
||||
|
||||
You are an expert software architect and senior full-stack engineer specializing in FastAPI and Vue.js applications. Your expertise lies in analyzing existing codebases and designing minimal-impact, maximum-effect feature implementations. You use KISS principle. You propose the best and most popular technologies/frameworks/libraries. Use tool context7 for the documentation.
|
||||
|
||||
When tasked with planning a new feature, you will:
|
||||
|
||||
1. **Codebase Analysis Phase**:
|
||||
- Examine the current project structure in the roa2web/ directory
|
||||
- Identify existing patterns, architectural decisions, and coding standards
|
||||
- Map out current database schema usage (CONTAFIN_ORACLE)
|
||||
- Analyze existing API endpoints, Vue components, and shared utilities
|
||||
- Identify reusable components and services that can be leveraged
|
||||
|
||||
2. **Impact Assessment**:
|
||||
- Determine which files need modification vs. creation
|
||||
- Identify potential breaking changes or conflicts
|
||||
- Assess database schema changes required
|
||||
- Evaluate impact on existing authentication and user management
|
||||
- Consider SSH tunnel and Oracle database constraints
|
||||
|
||||
3. **Implementation Strategy**:
|
||||
- Design the feature using existing architectural patterns
|
||||
- Prioritize modifications to existing files over new file creation
|
||||
- Plan database changes that work with the CONTAFIN_ORACLE schema
|
||||
- Design API endpoints following existing FastAPI patterns
|
||||
- Plan Vue.js components that integrate with current frontend structure
|
||||
- Consider testing strategy using the existing pytest setup
|
||||
|
||||
4. **Detailed Planning Document**:
|
||||
Create a comprehensive markdown file with:
|
||||
- Executive summary of the feature and its benefits
|
||||
- Technical requirements and constraints
|
||||
- Step-by-step implementation plan with file-by-file changes
|
||||
- Database schema modifications (if any)
|
||||
- API endpoint specifications
|
||||
- Frontend component structure
|
||||
- Testing approach
|
||||
- Deployment considerations
|
||||
- Risk assessment and mitigation strategies
|
||||
- Timeline estimates for each phase
|
||||
|
||||
5. **Optimization Principles**:
|
||||
- Leverage existing code patterns and utilities
|
||||
- Minimize new dependencies
|
||||
- Ensure backward compatibility
|
||||
- Follow the principle of least modification for maximum effect
|
||||
- Consider performance implications
|
||||
- Plan for scalability within the current architecture
|
||||
|
||||
Always save your comprehensive plan as a markdown file with a descriptive name like 'feature-[feature-name]-implementation-plan.md' in the appropriate directory. The plan should be detailed enough for any developer to implement the feature following your specifications.
|
||||
|
||||
Before starting, ask clarifying questions about the feature requirements if anything is unclear. Focus on creating a plan that integrates seamlessly with the existing ROA2WEB FastAPI/Vue.js architecture.
|
||||
5
.claude/commands/branch-plan-handover.md
Normal file
5
.claude/commands/branch-plan-handover.md
Normal file
@@ -0,0 +1,5 @@
|
||||
Create a new branch, save the detailed implementation plan to a markdown file for context handover to another session, then stop.
|
||||
|
||||
1. **Create new branch** with descriptive name based on current task
|
||||
2. **Save the implementation plan** you created earlier in this session to a markdown file in the project root
|
||||
3. **Stop execution** - do not commit anything, just prepare the context for handover to another session
|
||||
8
.claude/commands/context-handover.md
Normal file
8
.claude/commands/context-handover.md
Normal file
@@ -0,0 +1,8 @@
|
||||
Save detailed context about the current problem to a markdown file for handover to another session due to context limit reached.
|
||||
|
||||
1. **Create context handover file** in project root: `CONTEXT_HANDOVER_[TIMESTAMP].md`
|
||||
2. **Document the current problem** being worked on with all relevant details and analysis
|
||||
3. **Include current progress** - what has been discovered, analyzed, or attempted so far
|
||||
4. **List key files examined** and their relevance to the problem
|
||||
5. **Save current state** - todos, findings, next steps, and any constraints
|
||||
6. **Stop execution** - context is now ready for a fresh session to continue the work
|
||||
4
.claude/commands/plan-handover.md
Normal file
4
.claude/commands/plan-handover.md
Normal file
@@ -0,0 +1,4 @@
|
||||
Save the detailed implementation plan to a markdown file for context handover to another session, then stop.
|
||||
|
||||
1. **Save the implementation plan** you created earlier in this session to a markdown file in the project root
|
||||
2. **Stop execution** - do not commit anything, just prepare the context for handover to another session
|
||||
12
.claude/commands/session-current.md
Normal file
12
.claude/commands/session-current.md
Normal file
@@ -0,0 +1,12 @@
|
||||
Show the current session status by:
|
||||
|
||||
1. Check if `.claude/sessions/.current-session` exists
|
||||
2. If no active session, inform user and suggest starting one
|
||||
3. If active session exists:
|
||||
- Show session name and filename
|
||||
- Calculate and show duration since start
|
||||
- Show last few updates
|
||||
- Show current goals/tasks
|
||||
- Remind user of available commands
|
||||
|
||||
Keep the output concise and informative.
|
||||
30
.claude/commands/session-end.md
Normal file
30
.claude/commands/session-end.md
Normal file
@@ -0,0 +1,30 @@
|
||||
End the current development session by:
|
||||
|
||||
1. Check `.claude/sessions/.current-session` for the active session
|
||||
2. If no active session, inform user there's nothing to end
|
||||
3. If session exists, append a comprehensive summary including:
|
||||
- Session duration
|
||||
- Git summary:
|
||||
* Total files changed (added/modified/deleted)
|
||||
* List all changed files with change type
|
||||
* Number of commits made (if any)
|
||||
* Final git status
|
||||
- Todo summary:
|
||||
* Total tasks completed/remaining
|
||||
* List all completed tasks
|
||||
* List any incomplete tasks with status
|
||||
- Key accomplishments
|
||||
- All features implemented
|
||||
- Problems encountered and solutions
|
||||
- Breaking changes or important findings
|
||||
- Dependencies added/removed
|
||||
- Configuration changes
|
||||
- Deployment steps taken
|
||||
- Lessons learned
|
||||
- What wasn't completed
|
||||
- Tips for future developers
|
||||
|
||||
4. Empty the `.claude/sessions/.current-session` file (don't remove it, just clear its contents)
|
||||
5. Inform user the session has been documented
|
||||
|
||||
The summary should be thorough enough that another developer (or AI) can understand everything that happened without reading the entire session.
|
||||
37
.claude/commands/session-help.md
Normal file
37
.claude/commands/session-help.md
Normal file
@@ -0,0 +1,37 @@
|
||||
Show help for the session management system:
|
||||
|
||||
## Session Management Commands
|
||||
|
||||
The session system helps document development work for future reference.
|
||||
|
||||
### Available Commands:
|
||||
|
||||
- `/project:session-start [name]` - Start a new session with optional name
|
||||
- `/project:session-update [notes]` - Add notes to current session
|
||||
- `/project:session-end` - End session with comprehensive summary
|
||||
- `/project:session-list` - List all session files
|
||||
- `/project:session-current` - Show current session status
|
||||
- `/project:session-help` - Show this help
|
||||
|
||||
### How It Works:
|
||||
|
||||
1. Sessions are markdown files in `.claude/sessions/`
|
||||
2. Files use `YYYY-MM-DD-HHMM-name.md` format
|
||||
3. Only one session can be active at a time
|
||||
4. Sessions track progress, issues, solutions, and learnings
|
||||
|
||||
### Best Practices:
|
||||
|
||||
- Start a session when beginning significant work
|
||||
- Update regularly with important changes or findings
|
||||
- End with thorough summary for future reference
|
||||
- Review past sessions before starting similar work
|
||||
|
||||
### Example Workflow:
|
||||
|
||||
```
|
||||
/project:session-start refactor-auth
|
||||
/project:session-update Added Google OAuth restriction
|
||||
/project:session-update Fixed Next.js 15 params Promise issue
|
||||
/project:session-end
|
||||
```
|
||||
13
.claude/commands/session-list.md
Normal file
13
.claude/commands/session-list.md
Normal file
@@ -0,0 +1,13 @@
|
||||
List all development sessions by:
|
||||
|
||||
1. Check if `.claude/sessions/` directory exists
|
||||
2. List all `.md` files (excluding hidden files and `.current-session`)
|
||||
3. For each session file:
|
||||
- Show the filename
|
||||
- Extract and show the session title
|
||||
- Show the date/time
|
||||
- Show first few lines of the overview if available
|
||||
4. If `.claude/sessions/.current-session` exists, highlight which session is currently active
|
||||
5. Sort by most recent first
|
||||
|
||||
Present in a clean, readable format.
|
||||
13
.claude/commands/session-start.md
Normal file
13
.claude/commands/session-start.md
Normal file
@@ -0,0 +1,13 @@
|
||||
Start a new development session by creating a session file in `.claude/sessions/` with the format `YYYY-MM-DD-HHMM-$ARGUMENTS.md` (or just `YYYY-MM-DD-HHMM.md` if no name provided).
|
||||
|
||||
The session file should begin with:
|
||||
1. Session name and timestamp as the title
|
||||
2. Session overview section with start time
|
||||
3. Goals section (ask user for goals if not clear)
|
||||
4. Empty progress section ready for updates
|
||||
|
||||
After creating the file, create or update `.claude/sessions/.current-session` to track the active session filename.
|
||||
|
||||
Confirm the session has started and remind the user they can:
|
||||
- Update it with `/project:session-update`
|
||||
- End it with `/project:session-end`
|
||||
37
.claude/commands/session-update.md
Normal file
37
.claude/commands/session-update.md
Normal file
@@ -0,0 +1,37 @@
|
||||
Update the current development session by:
|
||||
|
||||
1. Check if `.claude/sessions/.current-session` exists to find the active session
|
||||
2. If no active session, inform user to start one with `/project:session-start`
|
||||
3. If session exists, append to the session file with:
|
||||
- Current timestamp
|
||||
- The update: $ARGUMENTS (or if no arguments, summarize recent activities)
|
||||
- Git status summary:
|
||||
* Files added/modified/deleted (from `git status --porcelain`)
|
||||
* Current branch and last commit
|
||||
- Todo list status:
|
||||
* Number of completed/in-progress/pending tasks
|
||||
* List any newly completed tasks
|
||||
- Any issues encountered
|
||||
- Solutions implemented
|
||||
- Code changes made
|
||||
|
||||
Keep updates concise but comprehensive for future reference.
|
||||
|
||||
Example format:
|
||||
```
|
||||
### Update - 2025-06-16 12:15 PM
|
||||
|
||||
**Summary**: Implemented user authentication
|
||||
|
||||
**Git Changes**:
|
||||
- Modified: app/middleware.ts, lib/auth.ts
|
||||
- Added: app/login/page.tsx
|
||||
- Current branch: main (commit: abc123)
|
||||
|
||||
**Todo Progress**: 3 completed, 1 in progress, 2 pending
|
||||
- ✓ Completed: Set up auth middleware
|
||||
- ✓ Completed: Create login page
|
||||
- ✓ Completed: Add logout functionality
|
||||
|
||||
**Details**: [user's update or automatic summary]
|
||||
```
|
||||
Reference in New Issue
Block a user