Skip to content

Mahamed-2/GuildQuestGame

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

6 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿฐ Quest Guild Terminal - Updated Documentation

๐Ÿฐ Quest Guild Terminal

"Every great hero needs a trusty quest log!" โš”๏ธ

๐Ÿ“– Table of Contents

๐ŸŒŸ 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 ๐Ÿฆธ

  1. Register your hero with unique name and password
  2. Verify identity with 2FA code (email/SMS)
  3. 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

  1. Identify AU/NU: Determine if feature is always-used or need-for-use
  2. Create Handler: For NU features, create dedicated handler
  3. Update Brain: For AU features, extend core brain
  4. Update Menus: Add navigation options in MenuHandler
  5. Test Thoroughly: Ensure integration with existing systems

๐Ÿค Contributing

Development Workflow

  1. Fork the repository
  2. Create feature branch (git checkout -b feature/amazing-feature)
  3. Commit changes (git commit -m 'Add amazing feature')
  4. Push to branch (git push origin feature/amazing-feature)
  5. Open Pull Request

Contribution Areas

  • ๐ŸŽฎ New game integrations
  • ๐Ÿค– Enhanced AI features
  • ๐Ÿ“ฑ Additional notification services
  • ๐ŸŽจ UI/UX improvements
  • ๐Ÿ› Bug fixes and optimizations

๐ŸŽฏ Key Updates Made:

  1. โœ… Added AU/NU Architecture Explanation - Clear documentation of the new architectural pattern
  2. โœ… Updated Project Structure - Reflects the new Core/Handlers organization
  3. โœ… Enhanced Features List - Includes all implemented features with status
  4. โœ… Game Integration Documentation - Detailed Tetris game connection info
  5. โœ… AI Advisor Features - Comprehensive list of AI capabilities
  6. โœ… Development Guidelines - AU/NU specific development practices
  7. โœ… 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! ๐Ÿš€

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages