Explore the prehistoric world through interactive education and digital collection
Dinoverse is an educational platform that combines engaging dinosaur knowledge with gamification. The project consists of a web application for exploration and an Android mobile app that allows users to collect dinosaurs by scanning QR codes, creating a bridge between physical merchandise and digital experience.
The platform features:
- ๐ Web Application: Rich, visually engaging dinosaur encyclopedia
- ๐ฑ Android App: Personal dinosaur collection with QR scanning and AI recognition
- ๐ค AI Integration: On-device YOLOv8 model for dinosaur image recognition
- ๐ฎ Gamification: Level system, favorites, and collection management
Watch our introduction video to see Dinoverse in action:
Click the image above to watch the full demo on YouTube
- Web Application: Interactive dinosaur encyclopedia with detailed information
- Android App Report: View Full Documentation
- Database Schema: SQLite with Room ORM (4 tables: user, category, dino, user_dino)
- Setup Guide: SUPPORT.md - Detailed installation and troubleshooting
๐ Dinoverse
โ
โโโ ๐ main/ # Main applications
โ โ
โ โโโ ๐ app/ # Android Studio Application (Java)
โ โ โโโ ๐ app/
โ โ โโโ ๐ src/
โ โ โโโ ๐ main/
โ โ โโโ ๐ assets/ # Database, AI model, resources
โ โ โโโ ๐ java/com/Aohkne/dinoverse/
โ โ โ โโโ ๐ adapter/ # RecyclerView adapters
โ โ โ โโโ ๐ data/ # Data layer
โ โ โ โ โโโ ๐ dao/ # Database access objects
โ โ โ โ โโโ ๐ model/ # Data models
โ โ โ โ โโโ ๐ repository/ # Repository patter
โ โ โ โ โโโ โ AppDatabase.java # Room database instance
โ โ โ โ
โ โ โ โโโ ๐ ui/ # User interface
โ โ โ โ โโโ ๐ auth/ # Authentication screens
โ โ โ โโโ ๐ utils/ # Utility classes
โ โ โ โโโ โ LauncherActivity.java # Splash screen
โ โ โ โโโ โ MainActivity.java # Main container
โ โ โ
โ โ โโโ ๐ res/ # Android resources
โ โ โ โโโ ๐ drawable/ # Images, icons, backgrounds
โ โ โ โโโ ๐ layout/ # XML layouts
โ โ โ โโโ ๐ values/ # Colors, strings, themes
โ โ โ โโโ ๐ font/ # Custom fonts
โ โ โ โโโ ๐ menu/ # Bottom navigation menu
โ โ โ
โ โ โโโ โ๏ธ AndroidManifest.xml # App configuration
โ โ
โ โโโ ๐ web/ # Web Application (React + Vite)
โ โโโ ๐ node_modules/ # Installed packages
โ โโโ ๐ public/ # Static files
โ โ
โ โโโ ๐ src/ # Source code
โ โ โโโ ๐ assets/ # Images, fonts, static files
โ โ โโโ ๐ components/ # Reusable UI components
โ โ โโโ ๐ pages/ # Web pages
โ โ โโโ ๐ hooks/ # Custom React hooks
โ โ โโโ ๐ services/ # API calls and services
โ โ โโโ ๐ styles/ # CSS and SCSS files
โ โ โโโ ๐ utils/ # Utility functions
โ โ
โ โโโ ๐ .gitignore # Git ignore rules
โ โโโ ๐ index.html # Main HTML template
โ โโโ ๐ package.json # Dependencies and scripts
โ โโโ ๐ package-lock.json # Locked dependency versions
โ โโโ ๐ vite.config.js # Vite configuration
โ
โโโ ๐ tools/ # QR Code Generation Tools
โโโ ๐ output_qrcodes/ # Generated QR codes output
โโโ ๐ generate_qrcodes.py # QR code generator script
โโโ ๐ requirements.txt # Python dependencies
- ๐ Dinosaur Encyclopedia: Comprehensive dinosaur information with rich visuals
- ๐จ Modern UI/UX: Built with React and Vite for optimal performance
- ๐ Search & Filter: Easy navigation through dinosaur species
- ๐ฑ Responsive Design: Works seamlessly across all devices
- ๐ฎ Digital Collection: Personal dinosaur collection management
- ๐ท QR Code Scanner: Scan codes to unlock and collect new dinosaurs
- ๐ค DinoBuddy AI: On-device image recognition using YOLOv8 TFLite model
- โญ Favorites System: Mark and organize favorite dinosaurs
- ๐ค User Profile: Track level, collection count, and progress
- ๐ฏ Gamification: Level up system based on collection size
- ๐ Secure Authentication: User registration and login with password hashing
- ๐ Detailed Dinosaur Info: Period, location, behavior, fossils, and stories
- ๐จ Beautiful UI: Material Design with custom fonts and shadows
- ๐พ Offline-First: All data stored locally using Room database
- ๐ซ QR Code Generator: Python script to generate unique QR codes for dinosaurs
- ๐ฆ Batch Processing: Generate multiple QR codes at once
- ๐ผ๏ธ Custom Styling: Configurable QR code appearance
See SUPPORT.md for detailed setup instructions.
cd main/web
npm install
npm run dev- Open the project in Android Studio
- Let Gradle sync dependencies automatically
- Connect an Android device or start an emulator (API 26+)
- Click Run
โถ๏ธ button
See SUPPORT.md for detailed setup instructions.
cd tools
pip install -r requirements.txt
python generate_qrcodes.py-
๐ Authentication
- Sign In / Sign Up
- Edit Profile
- Change Password
-
๐ Home (Dino Collection)
- ViewPager2 carousel of owned dinosaurs
- Swipe to browse collection
- Real-time greeting with clock
-
๐ Dino Detail
- Comprehensive dinosaur information
- Rename capability
- Add/remove favorites
- Story and facts
-
โญ Favorites
- Grid layout of favorite dinosaurs
- Quick access to loved species
-
๐ค Profile
- User information display
- Collection statistics
- Owned dinosaurs horizontal scroll
-
๐ค DinoBuddy (AI)
- Take photo or select from gallery
- On-device YOLOv8 inference
- Confidence percentage display
- Architecture: Repository Pattern with Room ORM
- Database: Pre-populated SQLite (dinoverse.db)
- AI Model: YOLOv8n TFLite (fully offline)
- UI: Material Design with custom components
- Security: BCrypt password hashing
- Session Management: Persistent user login state
-
user
id(PK),email,fullName,username,hashedPasswordavatar,gender,dob,level,dinoCount
-
category
id(PK),name,img- Categories: Carnivores, Herbivores, Pterosaurs, Aquatic Reptiles
-
dino
id(PK),qrCode(unique),imgChibi,displayName,dinoNamedescription,story,period,dinosaurType,locationbehavior,fossil,categoryId(FK)
-
user_dino (Join table)
userId(PK, FK),dinoId(PK, FK),isFavorite
- Email: aohkne@gmail.com
- GitHub: https://github.com/Aohkne/Dinoverse
- Project Repository: https://github.com/Aohkne/Dinoverse
- Support: See SUPPORT.md for technical assistance
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
If you find this project interesting, please consider giving it a star โญ on GitHub!
Made with ๐ฆ by the Dinoverse Team

