Skip to content

Aohkne/Dinoverse

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

58 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Dinoverse Logo

๐Ÿฆ• Dinoverse

Explore the prehistoric world through interactive education and digital collection

๐ŸŽฏ Overview

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

๐ŸŽฌ Demo Video

Watch our introduction video to see Dinoverse in action:

Dinoverse Introduction Video

Click the image above to watch the full demo on YouTube

๐Ÿ“š Documentation

  • 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

๐Ÿ“‚ Project Structure

๐Ÿ“ 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

โœจ Features

๐ŸŒ Web Application

  • ๐Ÿ“š 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

๐Ÿ“ฑ Android Mobile App

  • ๐ŸŽฎ 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

๐Ÿ› ๏ธ Tools

  • ๐ŸŽซ 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

๐Ÿš€ Quick Start

Web Application

See SUPPORT.md for detailed setup instructions.

cd main/web
npm install
npm run dev

Android Application

  1. Open the project in Android Studio
  2. Let Gradle sync dependencies automatically
  3. Connect an Android device or start an emulator (API 26+)
  4. Click Run โ–ถ๏ธ button

QR Code Generator Tool

See SUPPORT.md for detailed setup instructions.

cd tools
pip install -r requirements.txt
python generate_qrcodes.py

๐Ÿ“ฑ Android App Features Breakdown

Core Screens

  1. ๐Ÿ” Authentication

    • Sign In / Sign Up
    • Edit Profile
    • Change Password
  2. ๐Ÿ  Home (Dino Collection)

    • ViewPager2 carousel of owned dinosaurs
    • Swipe to browse collection
    • Real-time greeting with clock
  3. ๐Ÿ“– Dino Detail

    • Comprehensive dinosaur information
    • Rename capability
    • Add/remove favorites
    • Story and facts
  4. โญ Favorites

    • Grid layout of favorite dinosaurs
    • Quick access to loved species
  5. ๐Ÿ‘ค Profile

    • User information display
    • Collection statistics
    • Owned dinosaurs horizontal scroll
  6. ๐Ÿค– DinoBuddy (AI)

    • Take photo or select from gallery
    • On-device YOLOv8 inference
    • Confidence percentage display

Technical Highlights

  • 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

๐Ÿ—„๏ธ Database Schema

Tables

  1. user

    • id (PK), email, fullName, username, hashedPassword
    • avatar, gender, dob, level, dinoCount
  2. category

    • id (PK), name, img
    • Categories: Carnivores, Herbivores, Pterosaurs, Aquatic Reptiles
  3. dino

    • id (PK), qrCode (unique), imgChibi, displayName, dinoName
    • description, story, period, dinosaurType, location
    • behavior, fossil, categoryId (FK)
  4. user_dino (Join table)

    • userId (PK, FK), dinoId (PK, FK), isFavorite

๐Ÿ“ž Contact

๐Ÿ“„ License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.


๐ŸŒŸ Star Us on GitHub!

If you find this project interesting, please consider giving it a star โญ on GitHub!

GitHub stars GitHub forks


Made with ๐Ÿฆ• by the Dinoverse Team

About

Educational Dinosaur Collection Platform

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors