https://github.com/jmsv/not-my-type
is it human? is it a bot? who knows
https://github.com/jmsv/not-my-type
Last synced: 7 months ago
JSON representation
is it human? is it a bot? who knows
- Host: GitHub
- URL: https://github.com/jmsv/not-my-type
- Owner: jmsv
- Created: 2019-02-16T16:08:09.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2019-02-18T12:27:27.000Z (over 7 years ago)
- Last Synced: 2024-12-29T17:34:10.396Z (over 1 year ago)
- Language: JavaScript
- Homepage: http://nmt.jmsv.me
- Size: 1.39 MB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# not-my-type
is it human? is it a bot? who knows
## What?
Captchas are annoying. This will hopefully be less so, but achieve something similar.
The idea is that a visitor to the website randomly mashes at the keyboard in a text box and we decide whether they're human or a bot.
## Development
> tl;dr: open command lines in the root directory and the `client` directory, and run `npm start` in both
The NodeJS+Express backend is in the root directory, and the React frontend is in the `client` directory. For development, the client's `package.json` proxies to `http://localhost:5000` to pass through `/api` requests to the Node server on port 5000.
To serve this in a production environment, run `npm run build` in the `client` directory and run the node server. The root `GET` endpoint serves the built `index.html` entry point.
The frontend will record keystroke events and send an object to the backend API in the following format:
```json
{
"events": [
{
"key": "r",
"time": 0,
"type": "keydown"
},
{
"key": "r",
"time": 24,
"type": "keyup"
},
{
"key": "j",
"time": 67,
"type": "keydown"
},
{
"key": "j",
"time": 81,
"type": "keyup"
}
]
}
```
## Future Ideas
- Verify that text (e.g. YouTube comments or registration fields) were typed by a human, not a bot