Vision-Week-Virtual-Exploration

Vision Week 🚀

Logo

GitHub contributors GitHub issues GitHub forks GitHub stars GitHub license

Vision Week is a web and mobile application that offers a unique virtual zoo experience using VR headsets. Users can explore various paths and access video content at each point of interest on the zoo map. The content is accessible via a monthly subscription purchased within the app.

Presentation & Wireframe

video presentation on Youtube

Wireframe on Figma

About

Vision Week is an innovative project that began on March 1, 2024, and will run until July 1, 2024. It immerses users in virtual reality, inspired by Tim Cook’s Apple Vision Pro and Mark Zuckerberg’s Meta platforms. The project showcases the combination of virtual exploration and real-world interactions.

Onboarding with Trello

Agile method with Scrum Slack, Confluence and Jira

Table of Contents

«««< HEAD

About

Vision Week is an innovative project that began on March 1, 2024, and will run until July 1, 2024. It immerses users in virtual reality, inspired by Tim Cook’s Apple Vision Pro and Mark Zuckerberg’s Meta platforms. The project showcases the combination of virtual exploration and real-world interactions.

Onboarding with Trello

Agile method with Scrum Slack, Confluence and Jira

Preview

If it doesn’t work, try the video presentation

Wireframe

Watch the preview

1ebf87c (refactor: Update file paths and use relative paths for assets, scripts, and stylesheets)

Features

Technologies

Installation

  1. Clone the repository:
    git clone https://github.com/Kvnbbg/Vision-Week-Virtual-Exploration.git
    cd Vision-Week-Virtual-Exploration
    
  2. Run the Application:
    • For web:
      flutter run -d chrome
      
    • For Android/iOS:
      flutter build apk
      flutter build ios
      

Code Snippet

Here’s a glimpse of the code that powers Vision Week:

<?php
require_once 'config.php';

session_start();

function getDatabaseConnection($dbFile) {
    try {
        $db = new PDO('sqlite:' . $dbFile);
        $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        return $db;
    } catch (PDOException $e) {
        error_log($e->getMessage());
        return null;
    }
}

function fetchFromDatabase($db, $query) {
    try {
        $stmt = $db->query($query);
        return $stmt->fetchAll(PDO::FETCH_ASSOC);
    } catch (PDOException $e) {
        error_log($e->getMessage());
        return [];
    }
}

$db = getDatabaseConnection(DB_FILE);
$usersDb = getDatabaseConnection('sql/users.db');
$zooDb = getDatabaseConnection('sql/zoo.db');
$dataDb = getDatabaseConnection('sql/data.db');

$articles = fetchFromDatabase($db, "SELECT title, content, published_at FROM news ORDER BY published_at DESC LIMIT 3");
$users = fetchFromDatabase($usersDb, "SELECT * FROM Users");
$zoo = fetchFromDatabase($zooDb, "SELECT * FROM Zoo");
$logs = fetchFromDatabase($dataDb, "SELECT * FROM DataAccessLog");

$welcomeMessage = isset($_SESSION['user']) ? "Welcome back, " . htmlspecialchars($_SESSION['user']['username']) . "!" : "Welcome to our website!";
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Vision Week, a virtual exploration!</title>
    <link rel="stylesheet" href="styles.css">
</head>
<body>
    <?php if (file_exists('header.php')) include 'header.php'; ?>
    <?php if (file_exists('navigation.php')) include 'navigation.php'; ?>

    <main>
        <h1><?php echo htmlspecialchars($welcomeMessage); ?></h1>

        <section>
            <?php if (!empty($articles)): ?>
                <h2>Latest News</h2>
                <ul>
                    <?php foreach ($articles as $article): ?>
                        <li>
                            <h3><?php echo htmlspecialchars($article['title']); ?></h3>
                            <p><?php echo htmlspecialchars($article['content']); ?></p>
                            <p class="published-date">Published: <?php echo htmlspecialchars($article['published_at']); ?></p>
                        </li>
                    <?php endforeach; ?>
                </ul>
            <?php else: ?>
                <p>No recent news articles found.</p>
            <?php endif; ?>
        </section>

        <section>
            <h2>User Data</h2>
            <?php if (!empty($users)): ?>
                <ul>
                    <?php foreach ($users as $user): ?>
                        <li><?php echo htmlspecialchars($user['username']); ?> - <?php echo htmlspecialchars($user['email']); ?></li>
                    <?php endforeach; ?>
                </ul>
            <?php else: ?>
                <p>No user data found.</p>
            <?php endif; ?>
        </section>

        <section>
            <h2>Zoo Data</h2>
            <?php if (!empty($zoo)): ?>
                <ul>
                    <?php foreach ($zoo as $animal): ?>
                        <li><?php echo htmlspecialchars($animal['animal_name']); ?> (<?php echo htmlspecialchars($animal['animal_type']); ?>) - <?php echo htmlspecialchars($animal['country_name']); ?></li>
                    <?php endforeach; ?>
                </ul>
            <?php else: ?>
                <p>No zoo data found.</p>
            <?php endif; ?>
        </section>

        <section>
            <h2>Access Logs</h2>
            <?php if (!empty($logs)): ?>
                <ul>
                    <?php foreach ($logs as $log): ?>
                        <li>User ID: <?php echo htmlspecialchars($log['user_id']); ?> accessed Data ID: <?php echo htmlspecialchars($log['data_id']); ?> at <?php echo htmlspecialchars($log['access_time']); ?> for action: <?php echo htmlspecialchars($log['action']); ?></li>
                    <?php endforeach; ?>
                </ul>
            <?php else: ?>
                <p>No access logs found.</p>
            <?php endif; ?>
        </section>
    </main>

    <?php if (file_exists('footer.php')) include 'footer.php'; ?>
    <script src="assets/script.js"></script>
</body>
</html>

Contributing

We welcome contributions to improve this project! Feel free to fork the repository and submit pull requests with your enhancements.

Read our CONTRIBUTING guidelines for more details.

Future Development

Your sponsorship helps cover expenses such as hosting fees, domain registration, and development tools, allowing us to continue improving and expanding Vision Week for the community.

Read more about SPONSORING Vision Week.

Thank you for your support!

Acknowledgements

This project was created by Kevin MARVILLE for STUDI. Special thanks to STUDI for their support and inspiration.

Learn More

For more information, visit kvnbbg.fr.

Contributors

GitHub contributors

We appreciate all the contributors who have helped make this project better.

Check out my side project, TurboZoo: