<!DOCTYPE html>
<html>

<head>
  <script src="https://code.jquery.com/jquery-3.1.0.min.js" integrity="sha256-cCueBR6CsyA4/9szpPfrX3s49M9vUU5BgtiJj06wt/s=" crossorigin="anonymous"></script>
  <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
  <script src="js/materialize.min.js" defer></script>
  <?php include 'cdn.php';?>
  <script src="js/ui-helper.js" defer></script>
  <link href="css/style.css" rel="stylesheet" type="text/css" />
  <link rel="stylesheet" type="text/css" href="//www.eclipse.org/eclipse.org-common/themes/solstice/public/stylesheets/vendor/cookieconsent/cookieconsent.min.css" />
  <script src="//www.eclipse.org/eclipse.org-common/themes/solstice/public/javascript/vendor/cookieconsent/default.min.js"></script>
  <?php include 'cookieconsent.php'?>
  <meta charset="UTF-8"/>
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <?php
  if (hasCookieConsent()) {
    include 'analytics.php';
  }
  ?>
  <!-- Marquee -->
  <script src="js/jquery.marquee.min.js"></script>
  <link href="css/style.css" rel="stylesheet" defer></defer>
  <script type="text/javascript" defer>
    $(function() {
      /* $('.marquee').marquee({
        duration: 10000,
        gap: 50,
        delayBeforeStart: 0,
        direction: 'left',
        duplicated: true,
        pauseOnHover: true
      }); */
    })
  </script>
  <title>Eclipse Kapua</title>
  <meta name="keywords" content="iot, m2m, kapua, mqtt, java, open source, platform, device management, connectivity"/>
  <meta name="author" content="Eclipse Kapua" />
</head>
<body>
  <?php include 'navbar.php';?>
  <div class="main-content" id="main-content">
    <section id="project-overview">
      <div class="title">
        <h1>Eclipse Kapua&trade;</h1>
        <h5>Modular IoT cloud platform to manage and integrate devices and their data. <br> A solid integrated foundation of IoT services for any IoT application.</h5>
     </div>
     <img class="banner-image" src="<?= $cdn_url ?>img/kapua_banner.png"></img>
      <div id="main-features" class="features-overview">
        <div class="feature"> <div class="feature-image"><img src="<?= $cdn_url ?>img/connect.svg"></img></div>
          <div class="feature-title">Connect</div>
          <p class="feature-description"> Connect IoT devices to Kapua via MQTT and other protocols. </p>
        </div>
        <div class="feature"> <div class="feature-image"><img src="<?= $cdn_url ?>img/manage.svg"></img></div>
          <div class="feature-title">Manage</div>
          <p class="feature-description"> Manage device applications, configurations, and resources and enable remote administration. </p>
        </div>
        <div class="feature"> <div class="feature-image"><img src="<?= $cdn_url ?>img/store.svg"></img></div>
          <div class="feature-title">Store &amp; Analyze</div>
          <p class="feature-description"> Store and index the data published by IoT devices for quick analysis and visualization into dashboards. </p>
        </div>
        <div class="feature"> <div class="feature-image"><img src="<?= $cdn_url ?>img/integrate.svg"></img></div>
          <div class="feature-title">Integrate</div>
          <p class="feature-description"> Integrate Kapua services with IT applications through flexible message routing and REST API. </p>
        </div>
      </div> <a class="getting-started" href="getting-started.php">Get Started</a> </section>
    <section id="community">
      <div class="community-items">
        <div class="community-links" style="width: 100%; text-align: center;">
          <h3>Community</h3>
          <p> Join the the growing community around Eclipse Kapua.</p>
          <ul>
            <li><img src="<?= $cdn_url ?>img/mailing_list.svg"></img> Join the <a href="https://dev.eclipse.org/mailman/listinfo/kapua-dev" target="_blank">mailing list</a></li>
            <li><img src="<?= $cdn_url ?>img/forum.svg"></img> Post your questions and comments on <a href="https://www.eclipse.org/forums/index.php/f/340/" target="_blank">Discussion Forum</a></li>
            <li><img src="<?= $cdn_url ?>img/report_issue.svg"></img> <a href="https://github.com/eclipse/kapua/issues" target="_blank">Report an Issue</a></li>
            <li><img src="<?= $cdn_url ?>img/report_issue.svg"></img> <a href="https://eclipse.org/security" target="_blank">Report a Security Vulnerability</a></li>
            <li><img src="<?= $cdn_url ?>img/contribute_code.svg"></img> <a href="https://github.com/eclipse/kapua" target="_blank">Contribute Code</a></li>
          </ul>
        </div>
        <?php
        /* if (hasCookieConsent()) {
          include('twitter.php');
        } */
        ?>
    </section>
    <section id="involved-parties">
      <h3>Who is Involved</h3>
      <div class="involved-parties-logos">
        <div class="involved-party">
          <a href="http://www.eurotech.com"><img src="<?= $cdn_url ?>img/eurotech_logo.png"></img></a>
        </div>
        <div class="involved-party">
          <a href="http://www.redhat.com"><img src="<?= $cdn_url ?>img/redhat_logo.png"></img></a>
        </div>
      </div>
    </section>
    <section id="acknowloedgements">
      <h3>Acknowledgments</h3>
        <div>
          <img src="https://www.yourkit.com/images/yklogo.png" />
        </div>
        <div>
          Thanks to YourKit for providing us an open source license of YourKit Java Profiler!
          <br />
          <br />
          YourKit supports open source projects with innovative and intelligent tools
          for monitoring and profiling Java and .NET applications.
          YourKit is the creator of <a href="https://www.yourkit.com/java/profiler/">YourKit Java Profiler</a>,
          <a href="https://www.yourkit.com/.net/profiler/">YourKit .NET Profiler</a>,
          and <a href="https://www.yourkit.com/youmonitor/">YourKit YouMonitor</a>.
        </div>
      </div>
    </section>
    <?php include 'footer.php';?>
  </div>
</body>

</html>
