Skip to content
This repository has been archived by the owner on Oct 28, 2024. It is now read-only.

Commit

Permalink
Open source release of Orange modifications
Browse files Browse the repository at this point in the history
Clean up, complete open source publication.

Co-authored-by: Pierre-Yves Lapersonne <pierreyves.lapersonne@orange.com>
Co-authored-by: Pierre-Yves Lapersonne <dev@pylapersonne.info>

In 2018, the "Tool Factory" project of INNOV/TGI/IVA at Orange studied the Tapster project, but this project was quickly abandoned.
The only developer involved continued, in a personal context, to work on the project and enrich it.
In 2024, it was noted that it was planned to publish elements of this project in open source, this request having not been successful because the request management tool was closed, the open source referent in charge of the request at the time retired, and the main developer left the service.
This publication aims to correct this error; the main developer of the fork having agreed to cede his rights on this fork while keeping this fork.
Note that this situation arose due to a lack of means, training and acculturation to open source within the company.
The situation was resolved by a GitHub administrator, himself an open source referent, main developer of the said project, and who has since become a trainer to try to improve this grotesque and dramatic situation.

Side fork: https://github.com/pylapp/tapsterbot

Signed-off-by: Pierre-Yves Lapersonne <pierreyves.lapersonne@orange.com>
Signed-off-by: Pierre-Yves Lapersonne <dev@pylapersonne.info>
  • Loading branch information
pylapp committed Oct 28, 2024
1 parent 372fe19 commit 21938b0
Show file tree
Hide file tree
Showing 125 changed files with 14,308 additions and 9,232 deletions.
14 changes: 6 additions & 8 deletions AUTHORS → AUTHORS.txt
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
Authors:

Primary maintainer:
Jason Huggins <jrhuggins@gmail.com>

Contributors:
Chris Williams <>
Appium
Chris G. Williams <chilliams@gmail.com>
Erik Kastner <kastner@gmail.com>
Jason Fox <jasonrobertfox@gmail.com>
Chris G. Williams <chilliams@gmail.com>
Jason Huggins <jrhuggins@gmail.com>
Michal Laskowski <>
Orange
Tapster
10 changes: 10 additions & 0 deletions CONTRIBUTORS.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
Chris Williams <>
Chris G. Williams <chilliams@gmail.com>
Dan Cuellar <penguinho@aol.com>
Erik Kastner <kastner@gmail.com>
Jason Fox <jasonrobertfox@gmail.com>
Jason Huggins <jrhuggins@gmail.com>
Jason Huggins <jason@jrandolph.com>
Michal Laskowski <>
Pierre-Yves Lapersonne <dev@pylapersonne.info>
Pierre-Yves Lapersonne <pierreyves.lapersonne@orange.com>
66 changes: 47 additions & 19 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -1,24 +1,52 @@
Copyright (c) 2011-2019, Tapster Committers
All rights reserved.
Copyright (c) 2018 Orange SA
This project is under dual license BSD-2-Clause OR MIT

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.


The BSD 2-Cluse license

Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
this list of conditions and the following disclaimer in the documentation and/or
other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

[This is the BSD 2-Clause License, http://opensource.org/licenses/BSD-2-Clause]
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; #OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

[This is a 2-Clause BSD License. You can find it at https://opensource.org/licenses/BSD-2-Clause]




The MIT License

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
64 changes: 52 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,57 @@
## Tapster - Mobile Automation Robot
# Important notice

This GitHub repository is a fork of the original [Jason Huggin's tapsterbot](https://github.com/hugs/tapsterbot) project.
It contains also improvements (direct or not) from [Dan Cuellar's fork](https://github.com/penguinho/tapsterbot).
Some parts of this project have been implemented or reviewed internaly at Orange in 2018 and were expected to be sumbmitted in open source.
This project has been finaly released so as to not prevent community to use it, and because forks on personal spaces was not appropriate.
**You should not considere this proejct as active nor maintained since 2018**.

![Tapsterbot](http://hugs.github.io/img/tapster-2-desk.jpg)
# Tapster - Mobile Automation Robot

## Dependencies
- Node.js
- One Tapster robot
## Why using such bot?
- Bring fun in your office
- Bring automation for your tests
- Extend your software-based instrumented tests (using UI Automator, Espresso, Kakao, Appium or whatever) with hardware-based tests
- Improve quality of your products
- Deal with secured elements on which no software can click
- Be as close as possible of the ideal use case (users use their fingers to click :3)
- Get a new tool for software development and mobile app tests: robots!

## Getting Started
## Projects files

1. Download and install the Arduino Client: [http://arduino.cc/en/Guide/HomePage](http://arduino.cc/en/Guide/HomePage)
2. Follow the setup procedure, and use the "blink" test script to verify your Arduino is working.
3. From the Arduino IDE upload the "Firmata" script: File -> Open -> Examples > Firmata > StandardFirmata
4. Install the dependencies: `cd software; npm install`
5. Start'er up: `node src/bot.js`
6. Start moving: `go(0,0,-140)`
### Clients
Contains Python and *Roboto Framwork* client to send request to *Taspter* bot

### Calibration
Contains Android and iOS app to claibrate the robot

### Hardware
This part contains all the assets to build the Tapster robots. As far as we remember, we did not change them.
The model we worked on where *Taspter 2*.

### Licenses
Contains some license files for information.

### Softwares
Contains source code to calibrate the bot, receive commands and process them.

## How it works
1. Calibrate the robot: you will have to run a claibration app from *Appium*, run the *calibrate* script of the robot and wait for capabilities after the calibration ;
2. The calibration process is quite simple: the robot tap on the screen, the app displays coordinates and *Appium* get it and process ;
3. The robot then must be used with the capabilities ;
4. It exposes a REST HTTP server which receives requests you can send with *Python* code or *Robot Framework*.
5. The brian of the robot is an *Arduino* board you must flash *Firmata* on
6. The project is quite cool and only few iPhones models were manage with conversion tables between keypads and coordinates

## Some references and things to see
- http://www.tapster.io (the creator of the Tapster bots)
- https://twitter.com/tapsterbot
- https://www.tindie.com/products/hugs/tapster/
- https://github.com/hugs/tapsterbot
- https://github.com/tapsterbot/tapsterbot
- https://github.com/appium/appium
- https://github.com/appium/robots
- https://github.com/penguinho/tapsterbot
- https://github.com/jackskalitzky/tapsterbot
- https://github.com/pylapp/tapsterbot
- https://speakerdeck.com/pylapp/why-not-tapster
6 changes: 6 additions & 0 deletions calibration/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# calibration folder

Here are binary files and sources for Android and iOS apps to use so as to calibrate the robot.
Desired capabilities to use for the calibration workflow are stored in a dedicated folder here.
The JavaScript Node.js scripts to use to trigger the calibration workflow are in the _software/src_ folder.
You can find more details about this workflow in the _doc/calibration-workflow.md_ file.
9 changes: 9 additions & 0 deletions calibration/android/.idea/android.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions calibration/android/.idea/modules.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

142 changes: 142 additions & 0 deletions calibration/android/.idea/workspace.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 9 additions & 0 deletions calibration/android/calibration-android/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
*.iml
.gradle
/local.properties
/.idea/workspace.xml
/.idea/libraries
.DS_Store
/build
/captures
.externalNativeBuild
3 changes: 3 additions & 0 deletions calibration/android/calibration-android/.idea/.gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Binary file not shown.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit 21938b0

Please sign in to comment.