Git Product home page Git Product logo

robot's Introduction

robot's People

Contributors

amertz08 avatar cduddy avatar hz-huang avatar nbukaty avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

robot's Issues

Short range IR test sketch

  • sketch to convert sensor values into actual distance and print to console
  • write test plan to verify results

Create basic web app

  • Flask app that has 1 route that returns "hello world"
  • Dockerfile with python 3.6 as base
  • Dockerfile should install all necessary packages
  • Dockerfile should expose necessary ports
  • Dockerfile should have proper command to keep container running on start
  • Container should wait for all necessary previous container to start
  • Add web service to docker-compose.yml that will bind local code base to allow hot development

Look at #28

Refactor web app into application factory

  • Create factory.py and make create_app app factory function
  • Refactor index route into a blueprint named main and wire into app factory
  • Use create_app to initiate an application instance in app.py

App factory docs
Blueprint docs

Long range IR test sketch

  • sketch to convert sensor values into actual distance and print to console
  • write test plan to verify results

Add contribution guidelines

Should have documented contribution guidelines for project to avoid conflicts and have a standard operating procedure.

Add docker for RouteSolver.py

Docker file needs to be made to run the route solver. It has already been created, but I needed this to make the branch.

Create sign up route

General

  • - Create forms.py
  • - Update Dockerfile with proper requirements

Sign Up Form

  • - Company Name (unique, required)
  • - First Name (required)
  • - Last name (required)
  • - Email (unique, required)
  • - Password (required, equalto(confirm))
  • - Confirm

Sign Up Route

  • - Template
  • - Validate and create proper models

Add directional capabilities to route detection

I need to update the graph class to allow for cardinal directions to be associated when delivering routes. I will likely add a function that iterates through the suggested route, and returns a stored value for the pair {A,B} in a dictionary or something like that.

Add efficient route selection

The RouteSolver.py file needs to be able to pick the best route out of all of the routes it finds. Because it lists the routes in a list format I will likely choose the shortest path, while also making sure the path is "simple" as in, no nodes are repeated. Ex A-> B->E->A would be eliminated.

Ultrasonic test sketch

  • Write sketch to convert sensor values to actual distances and print to console
  • Write test plan to verify results

Basic model declarations

You will need to use Flask-SQLAlchemy. Create file models.py and bind to application in app factory

Account

  • Company Name - unique
  • Created date - datetime
  • Active - boolean

User

  • acct_id - Foreign key
  • created date - datetime
  • first name
  • last name
  • email
  • password
  • generate_hash method
  • verify_password method

Config modifications

  • DB_USER - set as "app" for now
  • DB_HOST - set as "db" for now
  • DB_PASS - set as "pass" for now
  • DB_NAME - set as "development", "testing", "production"
  • SQLALCHEMY_URI - Combines DB config settings

Depends on #51 & #53

Create basic route solving

Create a basic route solver given a 2-d map. The algorithm in the base case should be able to solve the map from the starting point to the provided endpoint. It will then send a queue of instructions to the pi that will then relay the instructions one by one to the robot. In the future, it will likely solve for multiple routes, and provide the best one, should the route be blocked, it can re-route.

Create Login/Logout View

Login Form

  • - Email
  • - Password
  • - Validate Email
  • - Validate Password

Login View

  • - Template
  • - Flash success
  • - Redirect to dashboard index (will be made later)

Logout View

  • - Require login
  • - Redirect to main index
  • - Flash success

Login Manager integration

  • - Update Dockerfile with Flask-Login
  • - Integrate Flask Login into App factory

Create config object levels

Overall

  • Create config.py that has 4 classes. Config, DevelopmentConfig, TestingConfig, ProductionConfig All should inherit from Config
  • Create dict config that has development, testing, production, default config levels as keys, Config objects as values. default should be DevelopmentConfig
  • Integrate loading config into application factory

Config

  • init_app static method that takes in app and does nothing i.e. pass
  • SECRET_KEY = RANDOM_HASH

DebugConfig

  • DEBUG = True

TestingConfig

  • TESTING = True

ProductionConfig

  • pass for now

Depends on #51 being finished

Arduino i2c library

Incorporate a library to help the main Arduino communicate with other Arduinos and Rpi.

Add user model verification

User Model

  • - verified column (Boolean, default=False)
  • - verified_date column (Datetime)
  • - active column (Boolean, default=True)
  • - generate_token method. Returns expiring (24 hrs) JWT with email & user id field
  • - send_verification_email method. Takes in token parameter and for now simply warns user that method isn't full implemented
  • - Email template

Sign Up route

  • - create and send email w/ token
  • - add logic to print full verification URL if DEBUG=True
  • - flash message that validation email has been sent to user and that they have 24 hrs to respond

Validation route

  • - Decode JWT
  • - If expired flash message notifying user
  • - If invalid return 404
  • - update User model as needed
  • - redirect to main.index on success

Resend validation route

  • - create and send email w/ token
  • - add logic to print full verification URL if DEBUG=True
  • - flash message that validation email has been sent to user and that they have 24hrs to respond
  • - redirect to main.index on success
  • - login required

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.