diff --git a/README.md b/README.md index a23964d2b..ba15f8438 100644 --- a/README.md +++ b/README.md @@ -1,215 +1,46 @@ -# JSON-Server - -[![Node.js CI](https://github.com/typicode/json-server/actions/workflows/node.js.yml/badge.svg)](https://github.com/typicode/json-server/actions/workflows/node.js.yml) - -> [!IMPORTANT] -> Viewing beta v1 documentation – usable but expect breaking changes. For stable version, see [here](https://github.com/typicode/json-server/tree/v0) - -> [!NOTE] -> Using React ⚛️ ? Check my new project [MistCSS](https://github.com/typicode/mistcss) to write type-safe styles (works with TailwindCSS) - -## Install - -```shell -npm install json-server -``` - -## Usage - -Create a `db.json` or `db.json5` file - -```json -{ - "posts": [ - { "id": "1", "title": "a title", "views": 100 }, - { "id": "2", "title": "another title", "views": 200 } - ], - "comments": [ - { "id": "1", "text": "a comment about post 1", "postId": "1" }, - { "id": "2", "text": "another comment about post 1", "postId": "1" } - ], - "profile": { - "name": "typicode" - } -} -``` - -
- -View db.json5 example - -```json5 -{ - posts: [ - { id: '1', title: 'a title', views: 100 }, - { id: '2', title: 'another title', views: 200 }, - ], - comments: [ - { id: '1', text: 'a comment about post 1', postId: '1' }, - { id: '2', text: 'another comment about post 1', postId: '1' }, - ], - profile: { - name: 'typicode', - }, -} -``` - -You can read more about JSON5 format [here](https://github.com/json5/json5). - -
- -Pass it to JSON Server CLI - -```shell -$ npx json-server db.json -``` - -Get a REST API - -```shell -$ curl http://localhost:3000/posts/1 -{ - "id": "1", - "title": "a title", - "views": 100 -} -``` - -Run `json-server --help` for a list of options - -## Sponsors ✨ - -### Gold - -|| -| :---: | -| | -| | -| | - -### Silver - -|| -| :---: | -| | - -### Bronze - -||| -| :---: | :---: | -| | | - -[Become a sponsor and have your company logo here](https://github.com/users/typicode/sponsorship) - -## Sponsorware - -> [!NOTE] -> This project uses the [Fair Source License](https://fair.io/). Only organizations with 3+ users are kindly asked to contribute a small amount through sponsorship [sponsor](https://github.com/sponsors/typicode) for usage. __This license helps keep the project sustainable and healthy, benefiting everyone.__ -> -> For more information, FAQs, and the rationale behind this, visit [https://fair.io/](https://fair.io/). - -## Routes - -Based on the example `db.json`, you'll get the following routes: - -``` -GET /posts -GET /posts/:id -POST /posts -PUT /posts/:id -PATCH /posts/:id -DELETE /posts/:id - -# Same for comments -``` - -``` -GET /profile -PUT /profile -PATCH /profile -``` - -## Params - -### Conditions - -- ` ` → `==` -- `lt` → `<` -- `lte` → `<=` -- `gt` → `>` -- `gte` → `>=` -- `ne` → `!=` - -``` -GET /posts?views_gt=9000 -``` - -### Range - -- `start` -- `end` -- `limit` - -``` -GET /posts?_start=10&_end=20 -GET /posts?_start=10&_limit=10 -``` - -### Paginate - -- `page` -- `per_page` (default = 10) - -``` -GET /posts?_page=1&_per_page=25 -``` - -### Sort - -- `_sort=f1,f2` - -``` -GET /posts?_sort=id,-views -``` - -### Nested and array fields - -- `x.y.z...` -- `x.y.z[i]...` - -``` -GET /foo?a.b=bar -GET /foo?x.y_lt=100 -GET /foo?arr[0]=bar -``` - -### Embed - -``` -GET /posts?_embed=comments -GET /comments?_embed=post -``` - -## Delete - -``` -DELETE /posts/1 -DELETE /posts/1?_dependent=comments -``` - -## Serving static files - -If you create a `./public` directory, JSON Server will serve its content in addition to the REST API. - -You can also add custom directories using `-s/--static` option. - -```sh -json-server -s ./static -json-server -s ./static -s ./node_modules -``` - -## Notable differences with v0.17 - -- `id` is always a string and will be generated for you if missing -- use `_per_page` with `_page` instead of `_limit`for pagination -- use Chrome's `Network tab > throtling` to delay requests instead of `--delay` CLI option +import cv2 +from flask import Flask, render_template, Response +import pandas as pd +import time + +app = Flask(__name__) +data = {'time': [], 'speed': []} + +def gen_frames(): + cap = cv2.VideoCapture(0) + while True: + ret, frame = cap.read() + if not ret: + break + speed = 0 # احسب السرعة هنا + if speed > 60: + print("Alert!") + data['time'].append(time.time()) + yield (b'--frame\r\n' + b'Content-Type: image/jpeg\r\n\r\n' + cv2.imencode('.jpg', frame)[1].tobytes() + b'\r\n') + +@app.route('/') +def index(): + return render_template('index.html') + +@app.route('/video_feed') +def video_feed(): + return Response(gen_frames(), mimetype='multipart/x-mixed-replace; boundary=frame') + +if __name__ == '__main__': + app.run(host='0.0.0.0', port=3000) + + + + + + Vehicle Speed Monitor + + +

Vehicle Speed Monitor

+ Video Feed + + +flask +opencv-python +pandas