modularsecurity's People
modularsecurity's Issues
System resource
User resource
Create basic resource handler classes
Please look at the technical design doc for more information.
Users can see every system
Users can see systems they don't own and aren't secondaries of.
Backend Authentication Framework
This is a list of all issues that need to be complete for the backend to actually serve authenticated requests and to authorize users.
Add existing device to system
Working global controls
- System list actually changes system
- Kill switch works
Create user from oauth ID
Choose Pi OS and determine how to run a script on startup
Read sensor data in real time
Create frontend microservice deploy scrips
- Running the script deploys the frontend directory to the cloud
Initial embedded firmware
Everything we need to simply get the Pi up and running and sending data to a server. Bare minimum here, hardcoded wifi information etc.
Confirm Pi connects to WiFi
Implement device Module DB Models
Update backend URL paths
all backend urls now start with /api/*
Figure out how to get frontend hosted on Node.js appengine environment
Implement System DB Models
Remove 150K lines of CSS from the project
I'm sure there's a way to dynamically download this using a package manager?
Users can set details of systems they don't own
I was able to set the name of a system I don't own.
Partials for different home page tabs
If a user has an account then they should have a system that they own already
When a user logs in they need to be looking at a system.
If they have been added as a secondary user to a system they should see that system.
If they are already a system user they should not create a new system, otherwise they should get one.
Automatically created system names are None instead of String in datastore
John's computer is broken
Functioning Management Tab
Login redirect goes back to login page
After logging in, a user should land on loggedIn.html.
System endpoint to get a list of devices latest data frame
api/user get returns 500 error
Traceback (most recent call last):
File "/home/jjaro/Desktop/John/School Files/UC/17Summer/Software Engineering/git/modularsecurity/backend/lib/flask/app.py", line 1982, in wsgi_app
response = self.full_dispatch_request()
File "/home/jjaro/Desktop/John/School Files/UC/17Summer/Software Engineering/git/modularsecurity/backend/lib/flask/app.py", line 1614, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/home/jjaro/Desktop/John/School Files/UC/17Summer/Software Engineering/git/modularsecurity/backend/lib/flask/app.py", line 1517, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/home/jjaro/Desktop/John/School Files/UC/17Summer/Software Engineering/git/modularsecurity/backend/lib/flask/app.py", line 1612, in full_dispatch_request
rv = self.dispatch_request()
File "/home/jjaro/Desktop/John/School Files/UC/17Summer/Software Engineering/git/modularsecurity/backend/lib/flask/app.py", line 1598, in dispatch_request
return self.view_functionsrule.endpoint
File "/home/jjaro/Desktop/John/School Files/UC/17Summer/Software Engineering/git/modularsecurity/backend/lib/flask/views.py", line 84, in view
return self.dispatch_request(*args, **kwargs)
File "/home/jjaro/Desktop/John/School Files/UC/17Summer/Software Engineering/git/modularsecurity/backend/lib/flask/views.py", line 149, in dispatch_request
return meth(*args, **kwargs)
File "/home/jjaro/Desktop/John/School Files/UC/17Summer/Software Engineering/git/modularsecurity/backend/lib/flask_login/utils.py", line 228, in decorated_view
return func(*args, **kwargs)
File "/home/jjaro/Desktop/John/School Files/UC/17Summer/Software Engineering/git/modularsecurity/backend/resources/user.py", line 82, in get
return jsonify(current_user.to_json())
File "/home/jjaro/Desktop/John/School Files/UC/17Summer/Software Engineering/git/modularsecurity/backend/models/user.py", line 72, in to_json
"owned_systems": self.owned_systems(),
File "/home/jjaro/Desktop/John/School Files/UC/17Summer/Software Engineering/git/modularsecurity/backend/models/user.py", line 97, in owned_systems
owned = [o.system_key.get() for o in q.fetch(count)]
File "/home/jjaro/Desktop/Link to 17Summer/Software Engineering/git/google-cloud-sdk/platform/google_appengine/google/appengine/ext/ndb/utils.py", line 160, in positional_wrapper
return wrapped(*args, **kwds)
File "/home/jjaro/Desktop/Link to 17Summer/Software Engineering/git/google-cloud-sdk/platform/google_appengine/google/appengine/ext/ndb/query.py", line 1218, in fetch
return self.fetch_async(limit, **q_options).get_result()
File "/home/jjaro/Desktop/Link to 17Summer/Software Engineering/git/google-cloud-sdk/platform/google_appengine/google/appengine/ext/ndb/utils.py", line 160, in positional_wrapper
return wrapped(*args, **kwds)
File "/home/jjaro/Desktop/Link to 17Summer/Software Engineering/git/google-cloud-sdk/platform/google_appengine/google/appengine/ext/ndb/query.py", line 1237, in fetch_async
options = self._make_options(q_options)
File "/home/jjaro/Desktop/Link to 17Summer/Software Engineering/git/google-cloud-sdk/platform/google_appengine/google/appengine/ext/ndb/query.py", line 1420, in _make_options
options = QueryOptions(**q_options)
File "/home/jjaro/Desktop/Link to 17Summer/Software Engineering/git/google-cloud-sdk/platform/google_appengine/google/appengine/datastore/datastore_rpc.py", line 413, in new
value = config_option.validator(value)
File "/home/jjaro/Desktop/Link to 17Summer/Software Engineering/git/google-cloud-sdk/platform/google_appengine/google/appengine/datastore/datastore_query.py", line 1390, in batch_size
datastore_errors.BadArgumentError)
File "/home/jjaro/Desktop/Link to 17Summer/Software Engineering/git/google-cloud-sdk/platform/google_appengine/google/appengine/api/datastore_types.py", line 213, in ValidateInteger
raise exception('%s must not be 0 (zero)' % name)
BadArgumentError: batch_size must not be 0 (zero)
INFO 2017-07-08 17:29:45,361 module.py:832] default: "GET /api/user/ HTTP/1.1" 500 114
Get project ready for unit testing
In order for this to happen we have to correctly mock out datastore and ndb, this guide should show us how to do so.
Implement all DB Models
Need to implement json serializers for models
Current list of models requiring serialization:
- System
- Device
-
Owner -
Secondary
Create user db models
Landing page for a logged in user
- Logged in user should see their monitor tab page on landing
- Display some unique data to the user
Functioning Account tab
Setup Flask-Oauthlib
Setup Flask-Login
Working login page
I want to see a login page where I can click a button and go to google's oauth page and back and have our site display some kind of personal data ALONG WITH the authorization token on screen.
Move client key/secret out of source and into an ignored file
It's a bit of a security risk as is
UX improvements
- Theming
- Mobile Support
- And so much more!
Resource /user/ GET
the oauth_id parameter needs to be optional and if not provided it should return the user information for the current logged in user
Can a homie get some post endpoints?
I have the UI but still need the endpoints to:
- Update a system
- Update a user
- Hit the kill switch n a system
- Add a device to a system
- Add a secondary to a system
- Remove a secondary of a system
- Remove a device from a system
- Toggle the status of a device on a system
I also need to be able to:
Get the secondaries of a system
Hit the kill switch n a system
Set up cloud pub sub to work with incoming device data
Pi communication with Backend
Device resource
Functional Frontend
John just start adding issues here. I want to see functionality before form.
Set up continuous integration with Travis
Functioning Monitor Tab
Embedded research
We need to know a few things:
- What OS should we put on the Pi? (and why)
- Is micropython sufficient for what we need or should we get the entire stdlib?
- How small can we make the firmware/OS size?
- Do we need drivers for the door sensor?
- How do we communicate from the door sensor?
Determine how to start Pi OS in read only mode
Structure repo correctly
Move backend files into their own folder, create frontend and embedded folders
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.