{"id":19539203,"url":"https://github.com/ammaar-alam/doorunlocker","last_synced_at":"2025-04-26T16:31:21.454Z","repository":{"id":245181579,"uuid":"817496385","full_name":"Ammaar-Alam/doorUnlocker","owner":"Ammaar-Alam","description":"A smart door control system designed for dorm rooms; utilizing an Arduino Nano ESP32 Connect, L298N motor driver, and a DC motor to provide web and Bluetooth-controlled (BLE) door automation. The system integrates with Arduino IoT Cloud for control and status monitoring through a web interface.","archived":false,"fork":false,"pushed_at":"2025-03-14T19:35:09.000Z","size":15788,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-04T15:04:56.537Z","etag":null,"topics":["3d-printing","arduino","arduino-cloud","ble","body-parser","cplusplus","css","encryption","esp32","esp32-arduino","expressjs","home-automation","html","mjs","node-fetch","nodejs","peip","proxy-server","webapp","wpa2-en"],"latest_commit_sha":null,"homepage":"https://door.ammaar.xyz","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Ammaar-Alam.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2024-06-19T20:57:08.000Z","updated_at":"2025-03-14T19:35:14.000Z","dependencies_parsed_at":"2024-06-20T10:28:31.907Z","dependency_job_id":"93ffe86b-8661-4006-a051-6c50a34e7a8c","html_url":"https://github.com/Ammaar-Alam/doorUnlocker","commit_stats":null,"previous_names":["ammaar-alam/doorunlocker"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ammaar-Alam%2FdoorUnlocker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ammaar-Alam%2FdoorUnlocker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ammaar-Alam%2FdoorUnlocker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ammaar-Alam%2FdoorUnlocker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Ammaar-Alam","download_url":"https://codeload.github.com/Ammaar-Alam/doorUnlocker/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251017394,"owners_count":21523569,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["3d-printing","arduino","arduino-cloud","ble","body-parser","cplusplus","css","encryption","esp32","esp32-arduino","expressjs","home-automation","html","mjs","node-fetch","nodejs","peip","proxy-server","webapp","wpa2-en"],"created_at":"2024-11-11T02:38:39.786Z","updated_at":"2025-04-26T16:31:16.444Z","avatar_url":"https://github.com/Ammaar-Alam.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Automatic Dorm Door Opener\n\nAn innovative IoT project that revolutionizes dorm room access using cutting-edge technology. This system enables remote control of a physical door lock from anywhere in the world, showcasing a practical application of IoT in everyday life.\n\n**Live At My Website:** [door.ammaar.xyz](https://door.ammaar.xyz)\n\nThis website allows anyone, anywhere in the world, to open or close my dorm room door in real-time. Personally, I've made iPhone shortcuts that use the site's API endpoints so that I can open or close my door right from the lockscreen, or even ask siri to do the same; I barely even remember the dorm-pin on my prox at this point :P\n\n_[Watch it in action:](https://youtube.com/shorts/K_ev5bF7mhw?feature=share)_ \u003cbr\u003e\n\u003ca href=\"https://youtube.com/shorts/K_ev5bF7mhw?feature=share\"\u003e\n  \u003cimg src=\"https://i.imgur.com/JOtGRpt.png\" width=\"300\"/\u003e\n\u003c/a\u003e\n\n## Project Overview\n\nThis advanced system integrates an Arduino Nano ESP32 Connect with a motor driver and DC motor to provide seamless, remote control of a dorm room door. By leveraging the Arduino IoT Cloud, it offers both WiFi and Bluetooth Low Energy (BLE) control options. For all intensive purposes, the BLE version is more than sufficient, but I chose to use the WiFi version as ~~the thought of some random dude in Russia stumbling across my site and opening my door was funny~~ I just thought it was cooler :)\n\n## Features\n\n- Global remote door control via Arduino IoT Cloud\n- Intuitive web interface for easy access and control\n- BLE support for local, low-energy control\n- Real-time door status updates\n- Emergency close function for quick security measures\n- Optional password protection for enhanced security\n- Responsive design for both desktop and mobile devices\n\n## Technical Stack\n\n- **Hardware:** Arduino Nano ESP32 Connect, L298N Motor Driver, 24V DC Motor\n- **Backend:** Node.js, Express.js\n- **Frontend:** HTML5, CSS3, JavaScript\n- **IoT Platform:** Arduino IoT Cloud\n- **Authentication:** JSON Web Tokens (JWT)\n- **Version Control:** Git\n\n## Installation\n\n### Prerequisites\n\n- Arduino Nano ESP32 Connect\n- L298N Motor Driver\n- 24V DC Motor\n- Power supplies (24V for motor, 5V for Arduino)\n- Node.js (v14 or later) and npm installed on your system\n\n### Steps\n\n1. Clone the repository:\n```\ngit clone https://github.com/ammaar-alam/doorUnlocker.git\ncd doorUnlocker\n```\n\n2. Install dependencies: `npm install`\n\n3. Set up your Arduino:\n- Connect the hardware components according to the schematic in the `docs` folder\n- Upload the Arduino sketch from the `arduino` folder to your Nano ESP32 Connect\n\n4. Configure your environment variables:\n- Copy `.env.example` to `.env`\n- Fill in your Arduino IoT Cloud credentials and other configuration details\n\n5. Start the server: `npm start`\n\n## Usage\n\n1. Access the web interface by navigating to `http://localhost:3000` (or your server's address)\n2. Log in if authentication is enabled\n3. Use the toggle switch to open or close the door\n4. The emergency close button can be used to quickly secure the door\n\nFor more detailed usage instructions, check out my [User Guide](docs/USER_GUIDE.md).\n\n## Configuration\n\nThe system can be configured using environment variables. Key configuration options include:\n\n- `AUTH_REQUIRED`: Set to `true` to enable password protection\n- `PASSWORD`: Set the password for accessing the control panel (if auth is enabled)\n- `PORT`: The port on which the server will run (default: 3000)\n\nFor a full list of configuration options, see the `.env.example` file.\n\n## API Endpoints\n\nThe system exposes several RESTful API endpoints:\n\n- `POST /login`: Authenticate and receive a JWT token\n- `POST /command`: Send open/close commands\n- `POST /emergency-close`: Trigger an emergency close\n- `GET /status`: Retrieve the current door status\n\nFor detailed API documentation, refer to my [API Guide](docs/API_GUIDE.md).\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/AmazingFeature`)\n3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)\n4. Push to the branch (`git push origin feature/AmazingFeature`)\n5. Open a Pull Request\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## Acknowledgements\n\n- [Arduino IoT Cloud](https://create.arduino.cc/iot) for providing the IoT platform\n- [Express.js](https://expressjs.com/) for the web server framework\n- [node-fetch](https://github.com/node-fetch/node-fetch) for making HTTP requests in Node.js\n- All contributors who have helped shape and improve this project\n\n## Author\n\nAmmaar Alam - [GitHub](https://github.com/yourusername) - [Website](https://ammaar.xyz) - [Check out my other portfolios/links](https://linktr.ee/a_alam)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fammaar-alam%2Fdoorunlocker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fammaar-alam%2Fdoorunlocker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fammaar-alam%2Fdoorunlocker/lists"}