{"id":26198038,"url":"https://github.com/7rajnishsharma/geotracker","last_synced_at":"2026-04-08T23:32:41.188Z","repository":{"id":270097714,"uuid":"908917175","full_name":"7rajnishsharma/GeoTracker","owner":"7rajnishsharma","description":"GeoTracker allows user registration, real-time location tracking, and an admin dashboard to view user locations. It supports secure authentication, responsive design, and continuous location updates using React, Node.js, and MongoDB.","archived":false,"fork":false,"pushed_at":"2024-12-28T11:42:44.000Z","size":225,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-27T09:25:58.941Z","etag":null,"topics":["express","location-tracker","mongodb","nodejs","reactjs"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/7rajnishsharma.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":"2024-12-27T09:36:23.000Z","updated_at":"2025-07-09T22:43:49.000Z","dependencies_parsed_at":"2024-12-28T15:51:31.672Z","dependency_job_id":null,"html_url":"https://github.com/7rajnishsharma/GeoTracker","commit_stats":null,"previous_names":["7rajnishsharma/geotracker"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/7rajnishsharma/GeoTracker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/7rajnishsharma%2FGeoTracker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/7rajnishsharma%2FGeoTracker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/7rajnishsharma%2FGeoTracker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/7rajnishsharma%2FGeoTracker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/7rajnishsharma","download_url":"https://codeload.github.com/7rajnishsharma/GeoTracker/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/7rajnishsharma%2FGeoTracker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31579052,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T14:31:17.711Z","status":"ssl_error","status_checked_at":"2026-04-08T14:31:17.202Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["express","location-tracker","mongodb","nodejs","reactjs"],"created_at":"2025-03-12T02:49:47.346Z","updated_at":"2026-04-08T23:32:41.182Z","avatar_url":"https://github.com/7rajnishsharma.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n---\n\n# GeoTracker\n\n## Project Description\n\n**GeoTracker** is a real-time web application that enables users to track and manage their location efficiently. The app allows for user authentication, continuous location tracking, and provides an admin dashboard to view the locations of all users. The frontend is built with React, while the backend is powered by Node.js and Express, with MongoDB as the data storage solution.\n\n### Key Features:\n\n1. **User Registration and Login**  \n   Users can create an account and log in to the application. The login is secured with JWT (JSON Web Tokens), and passwords are hashed to ensure security.\n\n2. **Real-time Location Tracking**  \n   After logging in, users can grant location access to the application. The app will continuously track their location and send updates to the backend at regular intervals, ensuring real-time location monitoring.\n\n3. **Admin Dashboard**  \n   Admin users can view the latest locations of all registered users. Each user is represented by a dedicated card showing their username, latitude, longitude, and the timestamp of the last location update. The dashboard fetches data from the backend and ensures that only the most recent location for each user is displayed.\n\n4. **Responsive Design**  \n   The application is designed to be fully responsive, providing a seamless user experience across various devices such as desktops, tablets, and smartphones. Material-UI is used for building the UI, ensuring a modern and intuitive interface.\n\n---\n\n## Technologies Used\n\n### Frontend:\n- **React**: A JavaScript library for building user interfaces.\n- **Material-UI**: A popular React UI framework that provides pre-designed components for faster and easier development.\n\n### Backend:\n- **Node.js**: A JavaScript runtime built on Chrome's V8 engine, used for building scalable network applications.\n- **Express**: A web application framework for Node.js, designed for building RESTful APIs and web applications.\n\n#### **Backend Dependencies**  \n\n- **bcryptjs**: Handles password hashing for secure user authentication.  \n- **body-parser**: Parses incoming request bodies in a middleware.  \n- **cors**: Enables cross-origin requests between the frontend and backend.  \n- **express**: A minimal and flexible Node.js framework for building web applications.  \n- **jsonwebtoken**: Used for creating and verifying JSON Web Tokens for secure authentication.  \n- **mongoose**: Manages MongoDB interactions with a simple and robust Object Data Modeling (ODM) library.  \n- **nodemon**: Automatically restarts the server during development when file changes are detected.  \n- **pg**: A PostgreSQL client for Node.js, ensuring compatibility with PostgreSQL databases.  \n- **pg-hstore**: Handles serialization of JSON data to PostgreSQL hstore format.  \n- **redis**: A high-performance in-memory data structure store used for caching and real-time location updates.  \n- **socket.io**: Enables real-time, bidirectional communication between the server and client, crucial for live location tracking.  \n\n\n### Database:\n- **MongoDB**: A NoSQL database that stores data in flexible, JSON-like documents, which allows for easy handling of unstructured data.\n\n### Authentication:\n- **JSON Web Tokens (JWT)**: A compact and URL-safe means of representing claims to be transferred between two parties. JWT is used for securely handling user authentication.\n\n---\n\n## Installation\n\n### Prerequisites\n\nBefore setting up the project, ensure you have the following installed:\n\n- **Node.js (v14 or higher)**: You can download it from [Node.js official website](https://nodejs.org/).\n- **MongoDB**: Set up either a local or cloud MongoDB instance. You can get started with MongoDB Atlas for cloud databases at [MongoDB Atlas](https://www.mongodb.com/cloud/atlas).\n\n---\n\n### Clone the Repository\n\n1. Clone the repository to your local machine:\n\n```bash\nhttps://github.com/7rajnishsharma/GeoTracker.git\ncd GeoTracker\n```\n\n### Backend Setup\n\n1. Navigate to the backend directory:\n\n```bash\ncd back-end\n```\n\n2. Install the required dependencies:\n\n```bash\nnpm install\n```\n\n3. Create a `.env` file in the backend directory and add the following configurations:\n\n```\nMONGODB_URI=mongodb://your_mongo_uri\nJWT_SECRET=your_jwt_secret\n```\n\n- Replace `your_mongo_uri` with the connection string to your MongoDB instance.\n- Replace `your_jwt_secret` with a secret key for JWT authentication (you can generate one randomly).\n\n4. Start the backend server:\n\n```bash\nnpm start\n```\n\nThis will start the backend server on `http://localhost:5000`.\n\n---\n\n### Frontend Setup\n\n1. Navigate to the frontend directory:\n\n```bash\ncd ../front-end\n```\n\n2. Install the required dependencies:\n\n```bash\nnpm install\n```\n\n3. Start the frontend server:\n\n```bash\nnpm start\n```\n\nThis will start the frontend server on `http://localhost:3000`.\n\n---\n\n## Usage\n\n1. **User Registration and Login**:  \n   - Visit `http://localhost:3000/register` to create a new account.\n   - After registration, log in at `http://localhost:3000/login` using your credentials.\n   \n2. **Real-Time Location Tracking**:  \n   - Once logged in, the app will ask for location permissions. Grant it to start real-time tracking.  \n   - The app will periodically update your location to the backend.\n\n3. **Admin Dashboard**:  \n   - The admin user can access the dashboard at `http://localhost:3000/admin/admin` to view the latest locations of all registered users.\n   - Each user will have one card displaying their username, current latitude, longitude, and timestamp of the last location update.\n\n---\n\n## Screenshots\n\n**Homepage**  \n\n![HomePage](https://github.com/user-attachments/assets/e286333d-5a06-45f3-b1a8-35acc168ba1f)\n\n**Login Page**  \n\n![LoginPage](https://github.com/user-attachments/assets/c9d036ef-aa06-4745-b2ac-e0a0fffb9d70)\n\n**Signup Page**  \n\n![SignUp](https://github.com/user-attachments/assets/e52ca51d-2d1c-4fc0-bfcd-e439a26f91c0)\n\n**Admin Dashboard**  \n\n![Admin](https://github.com/user-attachments/assets/4578c634-6bb6-4aa1-bd43-2be3573735f6)\n\n**MongoDB Database**  \n\n![Database](https://github.com/user-attachments/assets/6e20b466-a2c1-4d6f-915d-0521fdf03a01)\n\n---\n\n## Contributing\n\nContributions are welcome! To contribute to this project, follow these steps:\n\n1. **Fork the repository** on GitHub.\n2. **Clone the repository** to your local machine:\n\n```bash\ngit clone https://github.com/yourusername/location-tracker.git\n```\n\n3. **Create a new branch** for your feature:\n\n```bash\ngit checkout -b feature/YourFeature\n```\n\n4. **Make your changes** and commit them:\n\n```bash\ngit commit -m 'Add new feature'\n```\n\n5. **Push to the branch**:\n\n```bash\ngit push origin feature/YourFeature\n```\n\n6. **Create a pull request** from your branch to the main repository.\n\n---\n\n\n## Acknowledgments\n\n- **Material-UI**: For providing the UI components that were used to build the frontend.\n- **MongoDB**: For being a flexible and scalable database solution.\n- **Express**: For simplifying the creation of APIs in the backend.\n- **React**: For providing a declarative, component-based architecture to build the UI.\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F7rajnishsharma%2Fgeotracker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F7rajnishsharma%2Fgeotracker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F7rajnishsharma%2Fgeotracker/lists"}