๐ฐ Quest Guild Terminal - Updated Documentation
๐ฐ Quest Guild Terminal
"Every great hero needs a trusty quest log!" โ๏ธ
๐ Table of Contents
- ๐ Overview
- โก Features
- ๐ Quick Start
- ๐๏ธ Project Structure
- ๐ฎ How to Use
- ๐ง Configuration
- ๐ฏ Development
- ๐ค Contributing
๐ Overview
Quest Guild Terminal is an epic console application where you become a heroic adventurer managing quests, battling deadlines, and receiving guidance from your trusty AI Guild Advisor! Built with C and Object-Oriented Programming principles using the innovative AU/NU architecture.
๐ฏ What's New (AU/NU Architecture)
- ๐ง AU (Always Used): Core brain logic that's always running
- ๐ง NU (Need for Use): Specialized handlers only when needed
- ๐๏ธ Clean Separation: Better maintainability and scalability
โก Features
| Feature | Description | Status |
|---|---|---|
| ๐ฆธ Hero Management | Create your hero profile with secure authentication | โ IMPLEMENTED |
| ๐ Quest System | Add, complete, and track quests with deadlines | โ IMPLEMENTED |
| ๐ฎ Game Challenges | Complete quests through Tetris game challenges | โ IMPLEMENTED |
| ๐ค AI Guild Advisor | Get AI-generated quest descriptions and advice | โ IMPLEMENTED |
| ๐ต Background Music | Immersive audio experience with controls | โ IMPLEMENTED |
| ๐ Smart Notifications | Deadline alerts and progress tracking | โ IMPLEMENTED |
| ๐ Performance Analytics | AI-powered hero performance analysis | โ IMPLEMENTED |
| ๐พ Data Persistence | SQLite database for saving progress | โ IMPLEMENTED |
๐ Quick Start
Prerequisites
- .NET 9.0 SDK
- Visual Studio Code or Visual Studio 2022
- Git for version control
Installation & Running: bash Clone the repository git clone https://github.com/yourusername/quest-guild-terminal.git
Navigate to project cd quest-guild-terminal
Build the project dotnet build
Run the application dotnet run
First Time Setup
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ ๐ฐ QUEST GUILD TERMINAL โ โ ======================== โ โ โ โ 1. ๐ฏ Register New Hero โ โ 2. ๐ Login Hero โ โ 3. ๐ต Music Controls โ โ 4. ๐ช Exit Guild โ โ โ โ Choose your path, adventurer: โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
๐๏ธ Project Structure
quest-guild-terminal/ โโโ ๐ Program.cs ๐ฏ Application entry point โโโ ๐ QuestGuildApp.cs ๐ฎ Main application coordinator โโโ ๐ AppConfig.cs โ๏ธ Configuration settings โ โโโ ๐ง Core/ ๐ง AU - ALWAYS IN USE โ โโโ ๐ IQuestGuildBrain.cs ๐ง Brain interface โ โโโ ๐ QuestGuildBrain.cs ๐ง Core brain with AU logic โ โโโ ๐ง Handlers/ ๐ง NU - NEED FOR USE โ โโโ ๐ AuthenticationHandler.cs ๐ Login/Register โ โโโ ๐ QuestManagementHandler.cs ๐ Quest operations โ โโโ ๐ MenuHandler.cs ๐ฅ๏ธ Menu navigation โ โโโ ๐ MusicHandler.cs ๐ต Music controls โ โโโ ๐ AdvisorHandler.cs ๐ค AI advice โ โโโ ๐ Models/ ๐๏ธ Data models (AU) โ โโโ Hero.cs ๐ฆธ Hero character data โ โโโ Quest.cs ๐ Quest information โ โโโ Priority.cs ๐ฏ Quest priority levels โ โโโ Achievement.cs ๐ Achievement system โ โโโ ๐ Interfaces/ ๐ Interfaces (AU) โ โโโ IAuthenticator.cs โ โโโ IQuestManager.cs โ โโโ INotificationService.cs โ โโโ IGuildAdvisorAI.cs โ โโโ ๐ Managers/ ๐ฏ Business logic (AU) โ โโโ DatabaseQuestManager.cs โ โโโ GameManager.cs โ โโโ QuestManager.cs โ โโโ ๐ Data/ ๐๏ธ Data layer (AU) โ โโโ QuestGuildContext.cs ๐พ Database context โ โโโ ๐ Service/ ๐ง Services (AU) โ โโโ Authenticator.cs โ โโโ DatabaseAuthenticator.cs โ โโโ EmailService.cs โ โโโ EnhancedGuildAdvisorAI.cs โ โโโ EnhancedNotificationService.cs โ โโโ GuildAdvisorAI.cs โ โโโ NotificationService.cs โ โโโ SimpleLoopingMusicService.cs โ โโโ ๐ฎ Games/ ๐ฎ Games (AU) โ โโโ Interfaces/ โ โ โโโ IGameEngine.cs โ โโโ Tetris/ โ โโโ Board.cs โ โโโ Character.cs โ โโโ Game.cs โ โโโ PieceFactory.cs โ โโโ Renderer.cs โ โโโ TetrisEngine.cs โ โโโ Tetromino.cs โ โโโ ๐ Utilities/ ๐ ๏ธ Helpers (AU) โ โโโ DatabaseConfig.cs โ โโโ MenuHelper.cs โ โโโ ๐ต Assets/ ๐ต Resources (AU) โโโ Huntrx.mp3 ๐ถ Background music โโโ tetris.mp3 ๐ฎ Game music
๐ฎ How to Use
Becoming a Hero ๐ฆธ
- Register your hero with unique name and password
- Verify identity with 2FA code (email/SMS)
- Start your legendary adventure!
Hero Dashboard Features
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ ๐ฐ HERO'S QUARTERS - Welcome! โ โ ======================== โ โ โ โ 1. ๐ Add New Quest โ โ 2. ๐ View All Quests โ โ 3. โ๏ธ Update/Complete Quest โ โ 4. ๐ฎ Complete with Game Challenge โ โ 5. ๐ง Request Guild Advisor Help โ โ 6. ๐ Hero Performance Analysis โ โ 7. ๐ซ Daily Motivation โ โ 8. ๐ฏ Quest Strategy Planner โ โ 9. โ๏ธ Quest Difficulty Assessment โ โ 10. ๐ Show Guild Report โ โ 11. ๐ Check Notifications โ โ 12. ๐ฏ View Game Challenges โ โ 13. โ๏ธ Settings & Preferences โ โ 14. ๐ต Music Controls โ โ 15. ๐ช Logout โ โ โ โ What shall we accomplish? โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
๐ฎ Game Challenge System
- Tetris Integration: Complete quests by reaching target levels
- Skill-Based: Your gaming skills determine quest completion
- Progress Tracking: Real-time feedback on your performance
๐ค AI Guild Advisor Features
- Quest Descriptions: AI-generated epic quest narratives
- Performance Analysis: Personalized hero progress insights
- Strategy Planning: Day-by-day quest completion plans
- Difficulty Assessment: AI-evaluated quest challenges
- Daily Motivation: Inspiring quotes for heroic spirits
๐ง Configuration
Environment Setup Create a .env file or set environment variables:
bash For AI Features (Gemini API) GEMINI_API_KEY=your_gemini_api_key_here
For Email Notifications SMTP_SERVER=smtp.gmail.com SMTP_PORT=587 SMTP_USERNAME=your_email@gmail.com SMTP_PASSWORD=your_app_password
For SMS Notifications (Twilio) TWILIO_ACCOUNT_SID=your_account_sid TWILIO_AUTH_TOKEN=your_auth_token TWILIO_PHONE_NUMBER=+1234567890
Database Setup The application automatically creates and manages SQLite database:
- File: questguild.db
- Auto-migration: No manual setup required
- Backup: Automatic data persistence
๐ ๏ธ Development
Building from Source bash Clone repository git clone https://github.com/yourusername/quest-guild-terminal.git cd quest-guild-terminal
Build project dotnet build
Run in development mode dotnet run
Create release build dotnet publish -c Release -o ./publish
Architecture Principles
- AU/NU Pattern: Clear separation of always-used vs need-for-use components
- Dependency Injection: Loose coupling between components
- Repository Pattern: Clean data access layer
- Service Layer: Business logic separation
Code Style Guidelines csharp // ๐ฏ AU Components (Always Used) public class QuestGuildBrain : IQuestGuildBrain { // Core app state and services }
// ๐ฏ NU Components (Need for Use) public class AuthenticationHandler { // Only used during authentication flows }
// ๐ฏ Clean Naming Conventions public class HeroQuestManager // PascalCase for classes public void CompleteQuestAsync() // PascalCase for methods public string heroName; // camelCase for variables
Adding New Features
- Identify AU/NU: Determine if feature is always-used or need-for-use
- Create Handler: For NU features, create dedicated handler
- Update Brain: For AU features, extend core brain
- Update Menus: Add navigation options in MenuHandler
- Test Thoroughly: Ensure integration with existing systems
๐ค Contributing
Development Workflow
- Fork the repository
- Create feature branch (git checkout -b feature/amazing-feature)
- Commit changes (git commit -m 'Add amazing feature')
- Push to branch (git push origin feature/amazing-feature)
- Open Pull Request
Contribution Areas
- ๐ฎ New game integrations
- ๐ค Enhanced AI features
- ๐ฑ Additional notification services
- ๐จ UI/UX improvements
- ๐ Bug fixes and optimizations
๐ฏ Key Updates Made:
- โ Added AU/NU Architecture Explanation - Clear documentation of the new architectural pattern
- โ Updated Project Structure - Reflects the new Core/Handlers organization
- โ Enhanced Features List - Includes all implemented features with status
- โ Game Integration Documentation - Detailed Tetris game connection info
- โ AI Advisor Features - Comprehensive list of AI capabilities
- โ Development Guidelines - AU/NU specific development practices
- โ Configuration Details - Environment setup and database info
The documentation now accurately reflects your current implementation with the AU/NU architecture and all the advanced features you've built! ๐