Maslow
Problem
Normally the domain of a sysadmin, We wanted to give a user control over their own browsing habits. They should be able to choose which sites and how much access those sites have.
Solution
Created a prototype tool allowing a user to black-list or limit their access at certain times. Useful for limiting problem internet habits or behaviors.
It consists of a golang authored binary running on a DD-WRT router which read and wrote dnsmasq logs and leases and a react client to allow a user to administer the rules for limiting their internet habits.
Technical Notes
- The administration service, built in React.js allows a user to manage devices and urls
- The go service, living on a DD-WRT enabled router, utilizes the date to create appropriate iptables rulesets.
- They are connected via firebase, acting as the datastore.
The idea here is that someone on your network says, “I’d like to use the Internet for a while.” and you, as their friend say, “Cool, I know you’ve done your work and have gotten lots of exercise today, so go ahead and use it for half an hour!”
Then you pull out your smartphone, navigate to a web address you have bookmarked (or possibly open an app), find your friend’s device in the list, and tap “grant permission.”
-
Your friend now has open access for that amount of time
-
Should your friend want more access after their time is up, they have to ask you again
-
It makes sure that you all understand how much time is being used and that they are spending their time wisely.