servus โ i'm a frontend dev from austria.
I believe exceptional performance and growth only happens when we find joy and purpose in what we do and if we aren't afraid of a little discomfort along the way.
basic application to run, persist, and display speedtests
License: MIT License
You are mixing js and python and the installation is complex.
Move to just using Node.js with the speedtest-net package.
Example json output:
{"upload": 394316287.9202392, "download": 710810930.4632795, "server": {"country": "United States", "url2": "http://sp2.aethosting.com/upload.php", "latency": xxx, "lon": "xxx", "sponsor": "AET Hosting Solutions", "name": "Washington, DC", "host": "speedtest.aethosting.com:8080", "d": 478.1985075127686, "lat": "38.9047", "url": "http://sp1.aethosting.com/upload.php", "cc": "US", "id": "7960"}, "timestamp": "2017-01-20T00:11:17.559249", "ping": 12.474}
having some port issues because i switched ISP. so the demo page is not working atm :)
The screenshot should give you a good idea nevertheless
speedtest-net offers events to listen to, when starting a test.
test phases could be pushed to the client via socket.io and displayed to give better ux
currently all test results are fetched from the db and displayed, when the user navigates to /dashboard. for large datasets this will be ๐ฉ.
add a query option to only load speedtests between a start and enddate. (selected through UI)
Reproduce:
Current Result:
Data is empty
Expected Result:
Data from previous run is still available
You're currently importing the whole lodash library with import _ from 'lodash';
in:
This leads to an unnecessarily increased bundle size.
Check out this blog post and the mentioned babel plugin to decrease the bundle size.
when starting up the application for the first time, the speedtest fails with a dump of the license. even though license agreement options are set correctly.
it appears that it has to be done once, before an actual speedtest runs through. maybe hit the speedtest api once to accept the license on startup?
this is an issue within the speedtest-net package: (issue is created)
ddsol/speedtest.net#117
So it works on Firefox and Chrome.. but its just a blank page on Safari.
The page source is correct just nothing is being shown.
I have tried to figure out why but my skills are lacking!
in osx, better add in requirement in README.MD
brew install jq
last update broke the schedule update. something is wrong with the body validation on the post request.
api seems unable to connect to the db. i think the problem is the wrong alias used in docker-compose.yml file
suggestion:
change
MONGODB_CONNECTION_STRING=mongodb://isp-db:27017/isp
to
MONGODB_CONNECTION_STRING=mongodb://db:27017/isp
and add the option
links:
- db
to the api service.
also change the environment in example.env to
MONGODB_CONNECTION_STRING=mongodb://db:27017/isp
furthermore:
example.env seems to miss the NODE_ENV enviroment
suggestion add to example.env
NODE_ENV=production
Use Expressjs and self host the web server which will remove the dependency on a global package (http-server) and make the installation easier.
when running docker compose, api does not respond on /speedtest.
possibly mongodb issue
after 5 reloads via the UI button, api state gets stuck in loading
Hi,
can you please add a licence to your code?
since my ISP is acting up, i cant get port 8080 to open to the public from my nas. will try to get this up and running again. hope the screenshot gives a decent picture till then.
obviously
When I run the speedtest.sh, I get the following error:
$ sh speedtest.sh
Last Speedtest:
speedtest.sh: line 10: 73772 Segmentation fault jq '.log[-1]' $LOG_FILE
Any Idea?
As a user I want to see visual feedback, that data is loading, until its displayed. Same goes for errors when fetching data.
To simplify the use of this application, node-cron would maybe be a good idea to schedule speedtests. Speedtests can anyway only be run through the api, so the api should run 24/7, which gives us a node platform to schedule tasks on.
editing the speedtest task via the ui would be great.
configuration should be stored outside the application. having a stateful app could lead to issues.
move "scheduling" config into a configuration state in mongodb
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.