SNAIL is a team project conducted by four software developers interested in Machine Learning and Artificial Intelligence.The MVP of this project consists on:
"Creating a self-driven car which uses ML for it to take the best decisions (turning right, turning left, drive straight). The soution will be implemented on a small scale car that will drive itself through a random circuit. Given a random circuit, we assume that the car keeps a constant speed and that it will face X-degree turns."
SNAIL constitues our Final Project for the Makers Academy Bootcamp. After brainstorming and diagramming, the MVP was delivered in just 7 days. As software develpers who experienced the same Academy, we all have an inclination to follow Agile principles, Test Driven Development and best practices for Code Quality.
As a team, our areas or focus are:
- Learning process.
- Code writing.
- Team work and use of Agile methodologies.
The Tech Stack used consists of:
- Python.
- TensorFlow.
- Flask.
- HTML/CSS.
The criteria followed to self-evaluate the work done is grouped into four sections:
- Passes tests.
- 100% test coverage.
- Appropriate feature and isolated unit tests.
- Passes pylint.
- Evidence of git workflow.
- Good documentation of project in the README.md.
- Card wall in order to keep track of tasks and objectives.
- Daily reflective blogs.
- Daily stand ups/retrospectives or another technique for group checkins/reflection.
The sources of information are organised as follows:
The card wall is here: Trello
The blog is here: Blog
snail-ML contains the logic used by the RaspberryPi computer to interact with the server and move the car.
Please read CONTRIBUTING.md for details on the process for submitting pull requests to us.
First, clone this repository. Then:
To update your environment after cloning the repository, run the following command on the shell:
>pip3 install requirements
To start the server, run the following command on the shell:
>python remoteAPI.py # Start the server at localhost:5000
You can invoke testing through the Python interpreter from the shell:
>python -m pytest [...]
Run tests in a module from the shell:
>pytest test_mod.py
Run tests in a directory from the shell:
>pytest testing/
Run tests by keyword expressions from the shell:
>pytest -k "MyClass and not method"
To have python linter available, run the following command on the shell:
>pip install pylint
To analyse the code quality of a file, do so as in this example:
>pylint path_helper_main_ml.py
To check the test coverage, run the following command on the shell:
>py.test --cov test/
- Alejandro Pitarch Olivas Checkout my projects
- Giacomo Ninniri Checkout my projects
- Irfan Durrani Checkout my projects
- Vivian Allen Checkout my projects
Makers academy on their training through the last 3 months.