Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
8c45a93
feat: implement payment accounts feature and enhance documentation
Hatef-Rostamkhani Aug 30, 2025
2227511
feat: implement MongoDB instance library and enhance sponsor features
Hatef-Rostamkhani Aug 30, 2025
7345502
feat: enhance Docker configuration for SPA rendering and browserless …
Hatef-Rostamkhani Aug 31, 2025
d8f64f1
feat: enhance Docker configuration and session management for crawler
Hatef-Rostamkhani Sep 1, 2025
7a4f22d
feat: enhance email subscription functionality with additional metadata
Hatef-Rostamkhani Sep 1, 2025
3103b0d
feat: implement API request logging functionality
Hatef-Rostamkhani Sep 2, 2025
1a837ad
docs: update .cursorrules with critical logging and initialization gu…
Hatef-Rostamkhani Sep 10, 2025
ae2ffdd
fix: update MongoDB image and environment variable names in Docker co…
Hatef-Rostamkhani Sep 10, 2025
282aba1
feat: refactor Crawler class for improved maintainability and perform…
Hatef-Rostamkhani Sep 10, 2025
1d2e7e1
feat: add issue templates for job management phases and documentation
Hatef-Rostamkhani Sep 11, 2025
e032b28
fix: update issue template URLs for job management documentation
Hatef-Rostamkhani Sep 11, 2025
6d293fc
fix: update issue template URLs for job management documentation
Hatef-Rostamkhani Sep 11, 2025
cc437e9
feat: implement EmailService for crawling notifications
Hatef-Rostamkhani Sep 14, 2025
33dfadc
feat: implement Unsubscribe functionality and enhance EmailService
Hatef-Rostamkhani Sep 20, 2025
14efbe2
feat: add localization support for home and about pages
Hatef-Rostamkhani Sep 20, 2025
5bdf9cc
feat: enhance search functionality and localization support
Hatef-Rostamkhani Sep 26, 2025
d6a99c1
feat: add text truncation for search result descriptions
Hatef-Rostamkhani Sep 26, 2025
cdf8241
feat: enhance email notification system and logging
Hatef-Rostamkhani Sep 28, 2025
39af307
feat: enhance API request logging and MongoDB connection handling
Hatef-Rostamkhani Sep 28, 2025
faa3ba1
feat: enhance MongoDB connection handling and add concurrent request …
Hatef-Rostamkhani Sep 29, 2025
4acc49a
feat: enhance URL retry tracking in URLFrontier
Hatef-Rostamkhani Sep 29, 2025
63b6bbd
feat: enhance MongoDB driver integration and URL handling
Hatef-Rostamkhani Oct 6, 2025
aaf014b
feat: enhance content validation and storage architecture
Hatef-Rostamkhani Oct 7, 2025
1ed68c9
fix: update JSON formatting and enhance documentation clarity
Hatef-Rostamkhani Oct 7, 2025
f470009
feat: enhance crawler endpoint and email notification localization
Hatef-Rostamkhani Oct 8, 2025
df0c360
feat: enhance crawler endpoint and email notification localization
Hatef-Rostamkhani Oct 8, 2025
71ba00a
feat: implement Website Profile API and tracking functionality
Hatef-Rostamkhani Oct 9, 2025
a822c78
feat: implement Website Profile API with comprehensive documentation …
Hatef-Rostamkhani Oct 9, 2025
b62ba2a
refactor: improve email tracking logic and regex handling
Hatef-Rostamkhani Oct 10, 2025
f8ab887
feat: add BASE_URL environment variable for flexible API endpoint con…
Hatef-Rostamkhani Oct 15, 2025
332cd0e
feat: integrate Crawler Scheduler into Docker and enhance documentation
Hatef-Rostamkhani Oct 17, 2025
9412af9
feat: implement timezone configuration for Crawler Scheduler
Hatef-Rostamkhani Oct 17, 2025
1decb95
feat: enhance time window logic and timezone detection in Crawler Sch…
Hatef-Rostamkhani Oct 17, 2025
7ddf2ab
chore: update GitHub Actions workflow for Docker build
Hatef-Rostamkhani Oct 18, 2025
fb60130
feat: enhance Docker Compose configuration with timezone support and …
Hatef-Rostamkhani Oct 18, 2025
cf14f5c
feat: update timezone configuration in Docker Compose files
Hatef-Rostamkhani Oct 18, 2025
605c10e
fix: update file processing logic and Docker Compose configuration
Hatef-Rostamkhani Oct 20, 2025
1d37eb5
feat: implement smart caching for Docker builds in GitHub Actions
Hatef-Rostamkhani Oct 20, 2025
ff850ca
feat: add MAX_CONCURRENT_SESSIONS environment variable for crawler co…
Hatef-Rostamkhani Oct 20, 2025
134263b
feat: implement RFC 5322 compliant email header encoding
Hatef-Rostamkhani Oct 21, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
941 changes: 934 additions & 7 deletions .cursorrules

Large diffs are not rendered by default.

199 changes: 199 additions & 0 deletions .github/ISSUE_TEMPLATE/README-issue-breakdown.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,199 @@
# 📋 **Universal Job Manager - Issue Breakdown Guide**

## 🎯 **Overview**
The Universal Job Manager Epic has been broken down into **6 testable, buildable phases** to enable incremental development, testing, and validation. Each phase can be developed independently and has clear success criteria.

## 📦 **Phase Breakdown**

### **Phase 1: Foundation (Backend Core)**
Build the foundational infrastructure that everything else depends on.

#### **Phase 1a: Core Database Schemas & Models**
- **File**: `phase-1a-database-schemas.md`
- **Duration**: 3-5 days
- **Focus**: MongoDB collections, job models, basic storage layer
- **Testing**: Database operations, CRUD functionality, schema migration
- **Success**: Can create, store, and retrieve job data

#### **Phase 1b: JobQueue & WorkerService**
- **File**: `phase-1b-jobqueue-workers.md`
- **Duration**: 5-7 days
- **Focus**: Job processing engine, worker pools, Redis integration
- **Testing**: Job execution, queue operations, crash recovery
- **Success**: Can process jobs asynchronously with crash recovery

### **Phase 2: API Integration (Connect Systems)**
Integrate job system with existing crawler and create API endpoints.

#### **Phase 2a: Job API Controllers**
- **File**: `phase-2a-job-api-controllers.md`
- **Duration**: 4-6 days
- **Focus**: REST API endpoints, job submission, status queries
- **Testing**: API functionality, authentication, performance
- **Success**: Can submit and manage jobs via HTTP API

#### **Phase 2b: Crawler Integration**
- **File**: `phase-2b-crawler-integration.md`
- **Duration**: 5-7 days
- **Focus**: Integrate existing Crawler with job system
- **Testing**: Crawl jobs, progress reporting, backward compatibility
- **Success**: Existing crawler works within job framework

### **Phase 3: User Experience (Real-time Interface)**
Build real-time monitoring and web dashboard for users.

#### **Phase 3a: Real-time Status System**
- **File**: `phase-3a-realtime-status.md`
- **Duration**: 6-8 days
- **Focus**: WebSocket, SSE, polling fallbacks, Redis pub/sub
- **Testing**: Real-time updates, connection management, scalability
- **Success**: Live job status updates in web browsers

#### **Phase 3b: Frontend Dashboard**
- **File**: `phase-3b-frontend-dashboard.md`
- **Duration**: 6-8 days
- **Focus**: Responsive web interface, job management UI
- **Testing**: UI functionality, mobile responsiveness, accessibility
- **Success**: Complete job management dashboard

## 🔄 **Development Strategy**

### **Sequential Dependencies**
```
Phase 1a → Phase 1b → Phase 2a → Phase 2b → Phase 3a → Phase 3b
```

Each phase **builds upon** the previous phase and has **clear interfaces** between components.

### **Testing at Each Phase**
- **Unit Tests**: Component-level functionality
- **Integration Tests**: Cross-component interaction
- **Performance Tests**: Benchmark critical paths
- **End-to-End Tests**: Complete workflow validation

### **Validation Strategy**
1. **Build and compile** successfully
2. **Run test suite** with >90% coverage
3. **Performance benchmarks** meet targets
4. **Manual testing** of key scenarios
5. **Code review** and documentation update

## 🚀 **Getting Started**

### **Phase 1a: First Steps**
```bash
# 1. Start with database schemas
cd /root/search-engine-core
git checkout -b feature/phase-1a-database-schemas

# 2. Create MongoDB collections
# 3. Implement job models
# 4. Write unit tests
# 5. Test with Docker container

# 6. Validate phase completion
./build/test_job_storage --test=connection
./build/test_job_models --test=crud
```

### **Build Validation Commands**
Each phase includes specific commands to validate completion:

#### **Phase 1a Validation**
```bash
./build/test_job_storage --test=connection
./build/test_job_models --test=crud
docker exec mongodb_test mongosh --eval "db.jobs.find().limit(1)"
```

#### **Phase 1b Validation**
```bash
./build/test_job_queue --test=enqueue_dequeue
./build/test_worker_service --test=worker_lifecycle
./build/test_crash_recovery --test=restart_recovery
```

#### **Phase 2a Validation**
```bash
curl -X POST http://localhost:3000/api/v2/jobs -H "Content-Type: application/json"
./tests/api/test_job_endpoints.sh
./tests/performance/load_test_job_api.sh
```

## 📊 **Progress Tracking**

### **Phase Completion Checklist**
For each phase, ensure:
- [ ] All tasks in phase issue completed
- [ ] Unit tests passing (>90% coverage)
- [ ] Integration tests working
- [ ] Performance targets met
- [ ] Documentation updated
- [ ] Code review approved
- [ ] Manual validation successful

### **Overall Project Milestones**
- **Week 2**: Phase 1 Complete (Database + Queue System)
- **Week 4**: Phase 2 Complete (API + Crawler Integration)
- **Week 6**: Phase 3 Complete (Real-time Dashboard)
- **Week 8**: Production Ready (Testing + Optimization)

## 🔧 **Development Guidelines**

### **Critical Implementation Rules**
Each phase must follow these project-specific rules:

1. **MongoDB Integration**: Always use `MongoDBInstance::getInstance()` before creating clients
2. **uWebSockets Safety**: Always pair `res->onData()` with `res->onAborted()`
3. **Controller Initialization**: Use lazy initialization pattern (no service init in constructors)
4. **Debug Output**: Use `LOG_DEBUG()` instead of `std::cout` (configurable via LOG_LEVEL)

### **Testing Requirements**
- **Unit Tests**: Test individual components in isolation
- **Integration Tests**: Test component interactions
- **Performance Tests**: Validate speed and scalability targets
- **Regression Tests**: Ensure existing functionality preserved

### **Quality Gates**
Before moving to next phase:
1. All tests must pass
2. Performance benchmarks must be met
3. Code review must be approved
4. Manual testing scenarios validated
5. Documentation must be updated

## 🎯 **Success Metrics**

### **Technical Metrics**
- **API Response Time**: < 100ms for job submission
- **System Reliability**: >99.9% uptime, zero job loss on crashes
- **Performance**: Support 1000+ concurrent jobs
- **Scalability**: Handle 10,000+ jobs per hour

### **Developer Experience**
- **Build Time**: Each phase adds <30 seconds to build time
- **Test Time**: Full test suite completes in <5 minutes
- **Development Speed**: New job types can be added in <1 day
- **Debugging**: Clear logs and monitoring for troubleshooting

## 📞 **Support & Resources**

### **Issue Templates Location**
All phase issues are in: `/root/search-engine-core/.github/ISSUE_TEMPLATE/`

### **Documentation**
- **API Documentation**: Will be generated during Phase 2a
- **Architecture Documentation**: Updated during each phase
- **Deployment Guide**: Completed during Phase 3b

### **Getting Help**
- Each issue contains detailed implementation notes
- Critical implementation rules are documented in each phase
- Common pitfalls and solutions are included
- Performance targets and validation commands provided

---

**🚀 Ready to start? Begin with Phase 1a: Core Database Schemas & Models**

**📈 Total Estimated Timeline: 8-12 weeks for complete implementation**
8 changes: 8 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
blank_issues_enabled: true
contact_links:
- name: 📋 Job Manager Epic Overview
url: https://github.com/hatefsystems/search-engine-core/blob/master/.github/ISSUE_TEMPLATE/universal-job-manager-epic.md
about: Read the complete epic overview before creating phase-specific issues
- name: 🔧 Implementation Guide
url: https://github.com/hatefsystems/search-engine-core/blob/master/.github/ISSUE_TEMPLATE/README-issue-breakdown.md
about: Development guidelines and phase breakdown explanation
Loading
Loading