An educational desktop gaming platform that makes learning engaging and interactive for students.
- Overview
- Features
- Prerequisites
- Installation
- Development
- Building for Production
- Project Structure
- Technology Stack
- Contributing
- License
[Product Name] is a cross-platform desktop application that combines gaming and education to create an immersive learning experience for students. Built with Electron and React, the application delivers native-like performance across Windows, macOS, and Linux operating systems.
- Cross-Platform Support: Run seamlessly on Windows, macOS, and Linux
- Interactive Learning: Gamified educational content that keeps students engaged
- Modern UI: Built with React and Tailwind CSS for a responsive, intuitive interface
- Offline Capability: Desktop application that works without constant internet connectivity
Before you begin, ensure you have the following installed on your system:
- Node.js: Version 18.x or higher (Download)
- npm: Version 9.x or higher (comes with Node.js)
- Git: For version control (Download)
macOS:
- Xcode Command Line Tools:
xcode-select --install
Windows:
- Windows SDK (for building Windows installers)
- Visual Studio Build Tools (recommended)
Linux:
- Standard build tools:
sudo apt-get install build-essential
- Clone the repository:
git clone <repository-url>
cd gamefi-app- Install dependencies:
npm installOr using Yarn:
yarn installTo start the application with hot-reload enabled:
npm run devThis command runs both the React development server and Electron concurrently. The application will automatically reload when you make changes to the code.
If you need to run the React app or Electron process individually:
React development server only:
npm run dev:reactElectron process only:
npm run dev:electronTo check code quality and style:
npm run lintTo preview the production build locally:
npm run previewThe application can be built for multiple operating systems. You can build on your current platform or cross-compile for other platforms (with some limitations).
npm run dist:macOutput: dist/[Product Name]-[version].dmg
Requirements:
- Must be run on macOS for proper code signing
- Builds x64 (Intel) compatible application
npm run dist:winOutput: dist/[Product Name]-[version].exe
Produces:
- NSIS installer (.exe)
- x64 (64-bit) compatible application
npm run dist:linuxOutput: dist/[Product Name]-[version].AppImage
Produces:
- AppImage (universal Linux format)
- x64 compatible application
The build process consists of three stages:
- TypeScript Compilation: Transpiles Electron main process TypeScript code
- React Build: Creates optimized production bundle with Vite
- Electron Packaging: Uses electron-builder to create platform-specific installers
Build settings are configured in package.json under the build section. Customize app icons, file associations, and installer options there.
gamefi-app/
├── src/
│ ├── electron/ # Electron main process code
│ │ └── tsconfig.json # TypeScript config for Electron
│ ├── components/ # React components
│ ├── pages/ # Application pages
│ └── App.tsx # Main React application
├── dist/ # Production builds (generated)
├── dist-electron/ # Compiled Electron code (generated)
├── public/ # Static assets
├── package.json # Project dependencies and scripts
├── tsconfig.json # TypeScript configuration
└── vite.config.ts # Vite build configuration
- Electron: v39.2.7 - Desktop application framework
- React: v19.2.0 - UI library
- TypeScript: v5.9.3 - Type-safe JavaScript
- Vite: v7.2.4 - Build tool and development server
- Tailwind CSS: v4.1.18 - Utility-first CSS framework
- React Router: v7.12.0 - Client-side routing
- ESLint: Code linting and quality checks
- electron-builder: v26.4.0 - Application packaging
- npm-run-all: Parallel script execution
We welcome contributions from the community! Please follow these steps:
- Fork the repository
- Create a feature branch:
git checkout -b feature/your-feature-name - Make your changes and commit:
git commit -m 'Add some feature' - Push to the branch:
git push origin feature/your-feature-name - Submit a pull request
- Follow the existing code style and conventions
- Run
npm run lintbefore committing - Write meaningful commit messages
- Update documentation as needed
- Test your changes on multiple platforms if possible
- Use TypeScript for all new code
- Follow React best practices and hooks conventions
- Use functional components over class components
- Maintain consistent formatting (Prettier recommended)
[License Type] - See LICENSE file for details
For issues, questions, or contributions, please:
- Open an issue on GitHub
- Contact the development team at [contact email]
- Review existing documentation in the
/docsfolder
- Multi-language support
- Cloud save synchronization
- Achievement system
- Multiplayer capabilities
- Custom content creation tools
Built with ❤️ for educators and students worldwide