{"id":37309918,"url":"https://github.com/namviet157/gps_tracking","last_synced_at":"2026-01-16T03:00:05.427Z","repository":{"id":313154911,"uuid":"1010684577","full_name":"namviet157/GPS_Tracking","owner":"namviet157","description":"Smart Motorcycle Anti-Theft and GPS Tracking System","archived":false,"fork":false,"pushed_at":"2025-09-04T06:58:01.000Z","size":220,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-04T08:55:25.048Z","etag":null,"topics":["anti-theft","arduino","esp32","gps-tracking","hcmus","iot"],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/namviet157.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-06-29T15:41:17.000Z","updated_at":"2025-09-04T06:59:02.000Z","dependencies_parsed_at":"2025-09-04T08:55:29.540Z","dependency_job_id":"aae335d9-99f4-4997-bb92-0a4b66b806e6","html_url":"https://github.com/namviet157/GPS_Tracking","commit_stats":null,"previous_names":["namviet157/gps_tracking"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/namviet157/GPS_Tracking","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/namviet157%2FGPS_Tracking","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/namviet157%2FGPS_Tracking/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/namviet157%2FGPS_Tracking/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/namviet157%2FGPS_Tracking/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/namviet157","download_url":"https://codeload.github.com/namviet157/GPS_Tracking/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/namviet157%2FGPS_Tracking/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28476662,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T00:15:39.755Z","status":"online","status_checked_at":"2026-01-16T02:00:07.781Z","response_time":107,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["anti-theft","arduino","esp32","gps-tracking","hcmus","iot"],"created_at":"2026-01-16T03:00:04.635Z","updated_at":"2026-01-16T03:00:05.412Z","avatar_url":"https://github.com/namviet157.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🚗 BikeGuard - Hệ thống Chống trộm và Định vị Xe máy Thông minh\n\n## 📋 Mô tả dự án\n\nBikeGuard là một hệ thống IoT toàn diện được thiết kế để bảo vệ và theo dõi xe máy thông minh. Hệ thống bao gồm thiết bị phần cứng ESP32 tích hợp nhiều cảm biến, ứng dụng web frontend và backend API để quản lý người dùng và dữ liệu.\n\n### ✨ Tính năng chính\n\n- **🔒 Chống trộm thông minh**: Sử dụng RFID, cảm biến chuyển động và cảm biến khoảng cách\n- **📍 Định vị GPS real-time**: Theo dõi vị trí xe máy theo thời gian thực\n- **📱 Giao diện web responsive**: Dashboard quản lý trực quan và dễ sử dụng\n- **🔔 Cảnh báo tức thì**: Thông báo khi phát hiện hành vi đáng ngờ\n- **📊 Lưu trữ dữ liệu**: Lưu trữ lịch sử vị trí và sự kiện an ninh\n- **👤 Quản lý người dùng**: Hệ thống đăng ký, đăng nhập và phân quyền\n\n## 🏗️ Kiến trúc hệ thống\n\n```\n┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐\n│   ESP32 Device  │    │  Web Frontend   │    │  Spring Boot    │\n│                 │    │                 │    │    Backend      │\n│ • GPS Module    │◄──►│ • Dashboard     │◄──►│ • REST API      │\n│ • RFID Reader   │    │ • Authentication│    │ • User Mgmt     │\n│ • Sensors       │    │ • Real-time Map │    │ • Database      │\n│ • WiFi/GSM      │    │ • Alerts        │    │ • Security      │\n└─────────────────┘    └─────────────────┘    └─────────────────┘\n         │                       │                       │\n         │                       │                       │\n         ▼                       ▼                       ▼\n┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐\n│   Firebase      │    │   Local Storage │    │   SQL Server    │\n│   Realtime DB   │    │   (Browser)     │    │   Database      │\n└─────────────────┘    └─────────────────┘    └─────────────────┘\n```\n\n## 📁 Cấu trúc dự án\n\n```\nGPS_Tracking/\n├── esp32/                          # Phần cứng ESP32\n│   └── gpsTracking.cpp             # Code chính cho ESP32\n├── bikeguard-backend/              # Backend API\n│   ├── src/main/java/\n│   │   └── com/example/bikeguard_backend/\n│   │       ├── controller/         # REST Controllers\n│   │       ├── model/             # Data Models\n│   │       ├── repository/        # Data Access Layer\n│   │       └── service/           # Business Logic\n│   ├── database/\n│   │   └── insert_database.sql    # Database schema\n│   └── pom.xml                    # Maven dependencies\n└── web-frontend/                   # Frontend Web App\n    ├── index.html                 # Trang chủ\n    ├── auth.html                  # Trang đăng nhập/đăng ký\n    ├── dashboard.html             # Dashboard chính\n    └── assets/\n        └── js/\n            ├── firebase.js        # Firebase integration\n            └── jquery-3.7.1.min.js # jQuery library\n```\n\n## 🛠️ Yêu cầu hệ thống\n\n### Phần cứng ESP32\n- **ESP32 Development Board**\n- **GPS Module NEO-6M**\n- **RFID Reader RC522**\n- **Cảm biến khoảng cách SRF04 (HC-SR04)**\n- **Cảm biến chuyển động SW520D**\n- **LED indicators** (Đỏ, Xanh, Vàng)\n- **Buzzer** cho cảnh báo âm thanh\n- **Nút bấm** điều khiển\n- **Antenna WiFi/GSM** (tùy chọn)\n\n### Phần mềm\n- **Java 21** hoặc cao hơn\n- **Maven 3.6+**\n- **SQL Server 2019+**\n- **Arduino IDE** với ESP32 board support\n- **Web browser** hiện đại (Chrome, Firefox, Safari, Edge)\n\n## 🚀 Hướng dẫn cài đặt và chạy\n\n### 1. Cài đặt Database\n\n```sql\n-- Chạy script SQL để tạo database\n-- File: bikeguard-backend/database/insert_database.sql\n```\n\n### 2. Cấu hình Backend\n\n1. **Clone repository:**\n```bash\ngit clone \u003crepository-url\u003e\ncd GPS_Tracking/bikeguard-backend\n```\n\n2. **Cấu hình database trong `application.properties`:**\n```properties\nspring.datasource.url=jdbc:sqlserver://localhost:1433;databaseName=YOUR_DB_NAME;encrypt=true;trustServerCertificate=true\nspring.datasource.username=YOUR_DB_USERNAME\nspring.datasource.password=YOUR_DB_PASSWORD\n```\n\n3. **Chạy ứng dụng Spring Boot:**\n```bash\n# Sử dụng Maven\nmvn spring-boot:run\n\n# Hoặc sử dụng Maven wrapper\n./mvnw spring-boot:run\n```\n\nBackend sẽ chạy tại: `http://localhost:8081`\n\n### 3. Cài đặt ESP32\n\n1. **Cài đặt Arduino IDE và ESP32 board support**\n2. **Cài đặt các thư viện cần thiết:**\n   - MFRC522 (RFID)\n   - TinyGPS++ (GPS)\n   - ArduinoJson\n   - FirebaseESP32\n   - WebServer\n\n3. **Cấu hình WiFi và Firebase (KHÔNG public secrets):**\n```cpp\n// Trong file gpsTracking.cpp\nconst char* ssid = \"YOUR_WIFI_SSID\";\nconst char* password = \"YOUR_WIFI_PASSWORD\";\n\n#define API_KEY \"YOUR_FIREBASE_API_KEY\"\n#define DATABASE_URL \"YOUR_FIREBASE_DATABASE_URL\"\n```\n\n4. **Cấu hình Firebase cho Web Frontend (KHÔNG public secrets):**\n```js\n// Trong web-frontend/assets/js/firebase.js và web-frontend/dashboard.html\nconst firebaseConfig = {\n  apiKey: \"YOUR_FIREBASE_API_KEY\",\n  authDomain: \"YOUR_FIREBASE_AUTH_DOMAIN\",\n  databaseURL: \"YOUR_FIREBASE_DATABASE_URL\",\n  projectId: \"YOUR_FIREBASE_PROJECT_ID\",\n  storageBucket: \"YOUR_FIREBASE_STORAGE_BUCKET\",\n  messagingSenderId: \"YOUR_FIREBASE_MESSAGING_SENDER_ID\",\n  appId: \"YOUR_FIREBASE_APP_ID\"\n};\n```\n\n5. **Cấu hình dịch vụ thông báo (tùy chọn):**\n```text\n- PushSafer: đặt `YOUR_PUSHSAFER_KEY` trong `web-frontend/dashboard.html`\n- EmailJS: đặt `YOUR_EMAILJS_PUBLIC_KEY`, `YOUR_EMAILJS_SERVICE_ID`, `YOUR_EMAILJS_TEMPLATE_ID` trong `web-frontend/dashboard.html`\n```\n\n4. **Upload code lên ESP32**\n\n### 4. Chạy Web Frontend\n\n1. **Mở file `web-frontend/index.html` trong trình duyệt**\n2. **Hoặc sử dụng local server:**\n```bash\ncd web-frontend\n# Sử dụng Python\npython -m http.server 8000\n\n# Hoặc sử dụng Node.js\nnpx http-server -p 8000\n```\n\nFrontend sẽ chạy tại: `http://localhost:8000`\n\nLưu ý bảo mật:\n- Không commit API keys, mật khẩu, token, hoặc thông tin tài khoản lên repository công khai.\n- Sử dụng biến môi trường hoặc file cấu hình cục bộ (không commit) để cung cấp secrets khi triển khai.\n- Các ví dụ trong mã đã thay bằng placeholder như `YOUR_FIREBASE_API_KEY`.\n\n## 📖 Hướng dẫn sử dụng\n\n### Đăng ký tài khoản\n1. Truy cập trang web: `http://localhost:8000`\n2. Chọn \"Đăng ký\" và điền thông tin cá nhân\n3. Xác nhận email (nếu có)\n\n### Đăng nhập và sử dụng\n1. Đăng nhập với email và mật khẩu\n2. Truy cập Dashboard để xem:\n   - Vị trí hiện tại của xe\n   - Lịch sử di chuyển\n   - Trạng thái cảm biến\n   - Cảnh báo an ninh\n\n### Cấu hình thiết bị\n1. **Kết nối ESP32 với nguồn điện**\n2. **Đảm bảo kết nối WiFi ổn định**\n3. **Kiểm tra kết nối GPS và các cảm biến**\n\n## 🔧 Cấu hình và tùy chỉnh\n\n### Thay đổi cấu hình ESP32\n```cpp\n// Thay đổi chân kết nối cảm biến\n#define TX_NEO 16      // GPS TX\n#define RX_NEO 17      // GPS RX\n#define SS_PIN 22      // RFID SS\n#define RST_PIN 21     // RFID RST\n#define TRIG_PIN 4     // Ultrasonic TRIG\n#define ECHO_PIN 2     // Ultrasonic ECHO\n```\n\n### Tùy chỉnh cảnh báo\n```cpp\n// Thay đổi khoảng cách cảnh báo (cm)\n#define DISTANCE 50\n\n// Thay đổi thời gian gửi dữ liệu (ms)\n#define SEND_INTERVAL 5000\n```\n\n### Cấu hình Firebase\n1. Tạo project Firebase mới\n2. Bật Realtime Database\n3. Cập nhật API_KEY và DATABASE_URL trong code ESP32\n\n## 📊 API Endpoints\n\n### User Management\n- `POST /api/users/register` - Đăng ký người dùng\n- `POST /api/users/login` - Đăng nhập\n- `GET /api/users/{id}` - Lấy thông tin người dùng\n- `PUT /api/users/{id}` - Cập nhật thông tin người dùng\n\n### GPS Data\n- `GET /api/gps/location` - Lấy vị trí hiện tại\n- `GET /api/gps/history` - Lấy lịch sử vị trí\n- `POST /api/gps/update` - Cập nhật vị trí (từ ESP32)\n\n⭐ Nếu dự án này hữu ích, hãy cho chúng tôi một star trên GitHub!\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnamviet157%2Fgps_tracking","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnamviet157%2Fgps_tracking","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnamviet157%2Fgps_tracking/lists"}