The frontend application for Quest Service, a thought-provoking logic puzzle game built on the Stellar blockchain. This React-based interface provides an engaging and intuitive user experience for players to solve puzzles and earn on-chain rewards.
View the complete design system and UI mockups on Figma: Quest Service Design - Figma
- Interactive Puzzle Interface: Smooth, responsive UI for solving logic puzzles
- Stellar Wallet Integration: Connect with Freighter and other Stellar wallets
- Real-time Progress Tracking: Visual feedback on puzzle completion and achievements
- NFT Gallery: Display earned achievement NFTs from completed puzzles
- Token Management: View and manage XLM and custom tokens for unlocking content
- Responsive Design: Optimized for desktop and mobile gameplay
- Framework: React 18+
- Styling: TailwindCSS
- State Management: React Context API / Redux (if applicable)
- Blockchain Integration: Stellar SDK, Soroban RPC
- Wallet Connection: Freighter Wallet API
- Build Tool: Vite / Create React App
- Type Safety: TypeScript (if applicable)
# Clone the repository
git clone https://github.com/yourusername/quest-service-frontend.git
# Navigate to the project directory
cd quest-service-frontend
# Install dependencies
npm install
# Set up environment variables
cp .env.example .env
# Edit .env with your Stellar network configuration
# Start the development server
npm run devCreate a .env file in the root directory with the following variables:
VITE_STELLAR_NETWORK=testnet
VITE_SOROBAN_RPC_URL=https://soroban-testnet.stellar.org
VITE_BACKEND_API_URL=http://localhost:3000
VITE_CONTRACT_ADDRESS=your_contract_address- Connect Wallet: Click "Connect Wallet" to link your Freighter wallet
- Browse Puzzles: Explore available puzzles organized by difficulty
- Solve Challenges: Complete logic puzzles to earn points and rewards
- Claim NFTs: Mint achievement NFTs for completing puzzle milestones
- Unlock Content: Use tokens to access hints and special levels
quest-service-frontend/
├── public/
├── src/
│ ├── assets/ # Images, icons, and static files
│ ├── components/ # Reusable UI components
│ ├── pages/ # Page components
│ ├── services/ # API and blockchain services
│ ├── utils/ # Helper functions
│ ├── hooks/ # Custom React hooks
│ ├── contexts/ # React contexts
│ ├── App.jsx # Main application component
│ └── main.jsx # Application entry point
├── .env.example
├── package.json
└── README.md
# Run unit tests
npm run test
# Run tests with coverage
npm run test:coverage
# Run e2e tests
npm run test:e2e# Build for production
npm run build
# Preview production build
npm run previewWe welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Please ensure your code follows the project's coding standards and includes appropriate tests.
This project is licensed under the MIT License.
For questions or support, please open an issue or join our community discussions.