Developer Log - alyoshenka/neo GitHub Wiki
This will be used to keep track of my progress throughout the completion of this project
Initial Project Preparation and Decisions
Project Setup
January: 12 hrs
start 1/2
Following the tutorial here
- Issue: can't connect using different topic name
- Solution: change device policy (it was only allowing pub/sub with "sdk/test/python"
success! I can turn an LED on and off using the MQTT test client
time: 2 hrs
Proposal redo: 2 hrs
playing around with mqtt: 1 hr
logged 1/14: 5 hrs
- Working on issue #10
- time: 2 hrs
- Other stuff
- gathering example vids: 1 hr
- meeting with potential teammate: 1 hr
- discussing with teammate; reviewing stock ticker: 1 hr
- Revamping drawing library: repo
- nested git repos? stock ticker should build on drawing library. probably too much stuff to make this a gist. I think I'm just gonna start it over.
- add python project and set up linting + tests with Actions: 1 hr
- you can draw a board!: 1 hr
logged 1/27: 7 hrs
February: 14 hrs
Neopolitan
- lots of
pylint
andimport
errors: 1 hr - redoing data transformation for writing symbols: 1 hr
Neo
- make code easier to understand: 1 hr
- install and configure pylint: 1 hr
Neopolitan
- add CL arguments for message display: 1 hr
- working on GH Actions error that is causing tests to fail: 1 hr
- local pylint + pytest solved by removing
__init__.py
fromsrc/
- only run CI pytests in
tests/
directory - add
__init__.py
withimport sys; sys.path.append('src/')
totests/
- local pylint + pytest solved by removing
- CI tests pass: 1 hr
- couldn't merge branch because I was updating branch protection rules for the wrong repo...whoops
logged 2/3: 7 hrs
Neopolitan:
- did a bit more cleaning up: enabled scrolling speeds and padding if it scrolls itself out of data: 1 hr
Neo:
- reorganize mqtt connection code a bit and work on linter: 1 hr
- probably doesn't work because aws_iot is not included in repo
- research git submodules to include aws_iot in the project without manually adding all the code to my repo
- figured out linting error: was downloading pylint twice (once directly, once in requirements): 1 hr
- get all changes merged in and resolve merge conflicts and clean up branches: 1 hr
- get linter to work: 1 hr
- solution
- also added a
.bashrc
alias to run my linting command onlint
- added pytest locally: 1 hr
- need to configure secrets to get workflow to pass
- set up local secrets: 1 hr
- linting is good. tests fail, but are set up (almost) correctly
- env vars need to match case. duh.
logged 2/10: 7 hrs
Neo
- added an AWS MQTT test: 1 hr
Dibiasky
- start a (simple) react app and start looking into AWS authentication: 1 hr
- AWS Amplify tutorial: 1 hr
- Different AWS Amplify tutorial: 1 hr
March: ? hrs
logged 3/5: 4 hrs
Dibiasky
- Got stuck on that tutorial and started looking for other ones: 1 hr
- Working on AWS Amplify tutorial - trying to attach policy: 2 hrs
- Success!
- Solution: needed to add
wss://*
and*/mqtt
toaws_pubsub_endpoint
- Migrating example code to repo: 1 hr
- Diagnosing
ConnectionDisrupted
errors: 1 hr- Solution:
aws configure
!=sudo aws configure
(run the latter) - IAM > Users > Allow user to IoTAttachPolicy
sudo aws iot attach-policy --policy-name 'policy' --target 'region:cognito' --output json
- Solution:
- Set up repo secrets and push to GH: 1 hr
- Read about designing MQTT topics: 1 hr
- Design IoT topics and abstract MQTT connection code: 1 hr
Neo
- Design IoT topics (same as above, just in Python): 1 hr
logged 3/10: 9 hrs
Neo
- Design IoT topics on Pi; debug errors to push: 1 hr
Dibiasky
- Working on designing IoT topics to get a response after publishing a command: 2 hrs
- Setting up CI; adding some tests; setting up branch protection: 1 hr
- Writing tests and dealing with Cognito/auth issues in Jest: 1 hr
- Set up linting workflow: 1 hr
- Fixing merge conflicts, messing around with React: 1 hr
- Messing around with React, debugging
useState
issues: 1 hr - trying to figure out why it won't connect to Amplify: 3 hrs
- Pi can still pubsub
- still no idea
- updated packages
- checked that current PubSub version has no errors
- potential issue with v5
- solution: delete all
aws-amplify
files innode_modules
and reinstall
logged 3/24: 11 hrs
Dibiasky
- working on Cognito test: 1 hr
- Can still get connection status and cognito id without
withAuthenticator
- web app running or not doesn't affect it
- still struggling, tabling for now
- Can still get connection status and cognito id without
Neo
-
Make it so webpage can run board operations: 1 hr
- Allow all users to run neopixeltest with sudo without password
- Add alias to neopixeltest in
.bashrc
- it kind of works, but not great (yet)
- still need to input sudo password on first go
-
Working with sudo permissions to run neopixeltest: 1 hr
- solution: allow command to flash LEDs (using sudo) to individual user, not all users
- I can trigger an LED animation from a webpage, that's pretty darn cool!
-
Design a data topic: 1 hr
-
req/res to get available Pi operations: 1 hr
Dibiasky
- webpage design, more repo organization: 1 hr