Giga is a UNICEF-ITU global initiative to connect every school to the Internet and every young person to information, opportunity, and choice. By connecting all schools to the Internet, we ensure that every child has a fair shot at success in an increasingly digital world.
GigaMeter is a client desktop application that can be installed on Windows that automatically measures the internet upload and download speed of a network using minimal data. The App is automatically scheduled to run four internet speed tests daily. The first test runs within 15 minutes of the device being turned on, while the remaining three runs in the following time slots of the user's machine - 8 am to 12 pm, 12 pm to 4 pm, 4 pm to 8 pm.
It can be installed on a user device (such as a computer or laptop) and configured easily to send daily internet connectivity information to a database. It utilizes the Network Diagnostic Tool (NDT) protocol which is developed, maintained and hosted by Measurement Lab (M-Lab).
Giga uses GigaMeter to measure school connectivity, sending daily internet connectivity information to Giga Maps, helping Giga create an accurate picture of a school’s network quality over time. It was developed in partnership with Ericsson.
-
Improve accountability and transparency by tracking the progress and quality of connectivity of schools over time
-
Easily check, understand, share, and visualize the quality of the internet service experienced in a school
-
Measure impact by generating updated estimates on the number of schools and children who have fast and reliable access to internet connectivity
-
Internet connection
-
A Windows (Windows 7 or higher) desktop or laptop computer that is permanently and exclusively connected to the school internet.
-
500 Mb of free disk space
Our Tech Stacks
-
Ionic - an open-source UI toolkit (version 6.0.3)
-
Angular – a TypeScript-based, free, and open-source web application framework (version 13)
-
Capacitor - Community/Electron - (version 4.1.0)
-
Electron - a framework for building desktop applications using JavaScript, HTML and CSS
-
Download the latest version from the GigaMeter website.
-
The download will start automatically.
-
When the download is complete, double-click on the file. This usually appears at the bottom bar of your browser. Otherwise, you will find the file in your ‘Downloads’ folder.
-
The installation process is straightforward. Follow the wizard by clicking ‘Next’ on each step.
-
-
After successfully installing the app, it will send schools' internet connectivity information to Giga Maps four times daily.
Basic development commands
- After cloning the code from the GitHub repository
https://github.com/unicef/project-connect-daily-check-app
- Install all the dependencies modules by running this command:
npm install
- To run the app the application in a browser, run this command:
Ionic serve
- To run the application directly during the development without creating exe, run the following command from electron folder:
npm run electron:start-live
Ionic build generation
- To create a build from Ionic, run the following command:
Ionic build (for development)
or
Ionic build –prod (for production)
-
After running the above command, ionic build will be generated.
-
To transfer the build to electron side, run the following command:
npx cap sync @capacitor-community/electron
Setup file generation
- Navigate to the electron folder, then run the following command:
npm run electron:make
- The windows build can be found inside
/electron/dist folder
Network Diagnostic Tool
The application implements the same Network Diagnostic Tool (NDT) as the M-Lab chrome browser extension. The GigaMeter app integrates the NDT test using M-Lab's Javascript client library (for more information see M-Lab developer resources). The result of the test is sent as a JSON object to the application, which is then passed on to Giga Maps via the Service level API.
Thank you for considering contributing to GigaMeter! We value your input and aim to make the contribution process as accessible and transparent as possible. Whether you're interested in reporting bugs, discussing code, submitting fixes, proposing features, becoming a maintainer, or engaging with the GigaMeter community, we welcome your involvement.
Click here for detailed Contribution Guidelines
Backend Application Structure
Ionic/Angular Structure: The application business logic for GigaMeter resides in this section. Active development should reside inside the src folder of the application.
Electron Structure: The above Ionic/Angular application is packaged and delivered as a desktop application inside this section of the code.
At Giga, we're committed to maintaining an environment that's respectful, inclusive, and harassment-free for everyone involved in our project and community. We welcome contributors and participants from diverse backgrounds and pledge to uphold the standards.
Distributed under the AGPL-3.0 License. See LICENSE for more information.
Giga Meter Website: https://meter.giga.global/contact-us/
- Thanks to Ericsson and Mlab for helping build this application!