{"id":16978891,"url":"https://github.com/braineanear/mafkoud","last_synced_at":"2026-04-02T03:03:56.428Z","repository":{"id":105009684,"uuid":"389866737","full_name":"Braineanear/Mafkoud","owner":"Braineanear","description":"An API for Mobile Application that helps parents to find their kids throw IP cameras","archived":false,"fork":false,"pushed_at":"2021-08-16T12:27:40.000Z","size":58,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-03T13:24:21.975Z","etag":null,"topics":["babel","docker","docker-compose","machine-learning","mongodb","nodejs","pm2","python","redis","websocket"],"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/Braineanear.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}},"created_at":"2021-07-27T06:04:10.000Z","updated_at":"2023-03-08T15:44:39.000Z","dependencies_parsed_at":null,"dependency_job_id":"6461ffb6-b7b6-4625-b5b2-05b25d732154","html_url":"https://github.com/Braineanear/Mafkoud","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Braineanear/Mafkoud","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Braineanear%2FMafkoud","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Braineanear%2FMafkoud/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Braineanear%2FMafkoud/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Braineanear%2FMafkoud/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Braineanear","download_url":"https://codeload.github.com/Braineanear/Mafkoud/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Braineanear%2FMafkoud/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31294828,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-02T01:43:37.129Z","status":"online","status_checked_at":"2026-04-02T02:00:08.535Z","response_time":89,"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":["babel","docker","docker-compose","machine-learning","mongodb","nodejs","pm2","python","redis","websocket"],"created_at":"2024-10-14T01:44:24.607Z","updated_at":"2026-04-02T03:03:56.406Z","avatar_url":"https://github.com/Braineanear.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- PROJECT LOGO --\u003e\n\u003cbr /\u003e\n\u003ch1 align=\"center\"\u003e\n  \u003ca href=\"https://github.com/Braineanear/MafkoudAPI\"\u003e\n    \u003cimg src=\"https://i.ibb.co/yp32N8S/Home-1.png\" alt=\"Logo\" width=\"300\" height=\"120\"\u003e\n  \u003c/a\u003e\n\n  \u003ch3 align=\"center\"\u003eMafkoud API\u003c/h3\u003e\n\u003c/h1\u003e\n\n\u003ch4 align=\"center\"\u003eAn API for Mobile Application that helps parents to find their kids throw ip cameras\u003c/h4\u003e\n\n\u003c!-- TABLE OF CONTENTS --\u003e\n\u003cdetails open=\"open\"\u003e\n  \u003csummary\u003eTable of Contents\u003c/summary\u003e\n  \u003col\u003e\n    \u003cli\u003e\n      \u003ca href=\"#deployment\"\u003eDeployment\u003c/a\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\n      \u003ca href=\"#key-features\"\u003eKey Features\u003c/a\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\n      \u003ca href=\"#demonstration\"\u003eDemonstration\u003c/a\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\n      \u003ca href=\"#how-to-use\"\u003eHow To Use\u003c/a\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\n      \u003ca href=\"#api-usage\"\u003eAPI Usage\u003c/a\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\n      \u003ca href=\"#built-with\"\u003eBuilt With\u003c/a\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\n      \u003ca href=\"#to-do\"\u003eTo Do\u003c/a\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\n      \u003ca href=\"#known-bugs\"\u003eKnown Bugs\u003c/a\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\n      \u003ca href=\"#contributing\"\u003eContributing\u003c/a\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\n      \u003ca href=\"#contact\"\u003eContact\u003c/a\u003e\n    \u003c/li\u003e\n\n  \u003c/ol\u003e\n\u003c/details\u003e\n\n## Deployment\n\nThis article will help you on the deployment process [How to Run your API Builder Docker Image on AWS EC2\n](https://devblog.axway.com/apis/run-api-builder-docker-image-aws-ec2/)\n\nFirst change the config.example.env to config.env and put the configuration data inside it\n\nYou can deploy this API on AWS EC2 by making an instance and start choosing a linux device then finish the configurations and start to connect to the device from your terminal.\n\nAfter connecting and following AWS steps run:\n\n```\nsudo apt update\n\nsudo apt upgrade\n\nsudo apt install curl\n\ncurl -sL https://deb.nodesource.com/setup_14.x -o setup_14.sh\n\nsudo sh ./setup_14.sh\n\nsudo apt install nodejs\n\nnode -v\n\nsudo apt install git\n\nsudo curl -L \"https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m)\" -o /usr/local/bin/docker-compose\n\nsudo chmod +x /usr/local/bin/docker-compose\n\ndocker–compose –version\n\ngit clone (respository)\n\ncd MafkoudAPI\n\ndocker-compose build\n\ndocker-compose up\n```\n\nNow you successfully have a deployed API.\n\n## Key Features\n\n* Authentication and Authorization\n  * Login\n  * Logout\n  * Register\n  * Reset password\n  * Re-Generate refresh token\n  * Verify phone number\n* User\n  * There are three types of people: User | Admin | Security\n  * Create new user account\n  * Get users data\n  * Get user data\n  * Update user profile data\n  * Update user profile image\n  * Add new user profile image\n  * Delete user data\n* SMS\n  * Sending SMS message with sign up verification code\n  * Send child location\n* Child\n  * Add lost child\n  * Add found child\n  * Get childs data\n  * Delete child Data\n* Camera\n  * Get all camera faces\n* Match\n  * Matching childs with camera faces\n  * Get Matching Result\n\n## Demonstration\n\n### Home Screen\n\n![Home Screen](https://i.ibb.co/ySjnyrG/Home-2.png)\n\n### Found Person Screen\n\n![Found Person Screen](https://i.ibb.co/CPzHmKZ/Found-person.png)\n\n### Lost Person Screen\n\n![Lost Person Screen](https://i.ibb.co/5h4ZLsq/Lost-person.png)\n\n### Login Screen\n\n![Login Screen](https://i.ibb.co/5xR2btY/Login.png)\n\n### Sign Up Screen\n\n![Sign Up Screen](https://i.ibb.co/dbdVVdz/Signup.png)\n\n### Settings Screen\n\n![Settings Screen](https://i.ibb.co/GRb4s34/Setting-Example.png)\n\n### Notifications Screen\n\n![Notifications Screen](https://i.ibb.co/wszwwH3/Notifications.png)\n\n### SMS Verification Code Screen\n\n![SMS Verification Code Screen](https://i.ibb.co/wdMy5RQ/Verification-code.png)\n\n### Forgot Password Screen\n\n![Forgot Password Screen](https://i.ibb.co/0Bk5JJD/Forget-password.png)\n\n## How To Use\n\n### Signup\n\n* Open the app.\n* Choose sign-up.\n* Enter your data, then next.\n* The app will send a verification code to your mobile.\n* Enter the verification code.\n* Finished\n\n### Login\n\n* Open the app.\n* Enter your email and password.\n* Finished.\n\n### Lost Child\n\n* Click on i lost someone button on the homepage screen.\n* Enter an image for your lost child.\n* Enter some basic data about your child.\n* Finished.\n\n### Found Child\n\n* Click on i found someone button on the homepage screen.\n* Enter an image for the kid you found.\n* Enter some basic data about the kid.\n* Finished.\n\n### Notifications\n\n* When the system find the child or someone entered a data of child he found, the system will send an SMS message to child parents to notify them with the child location.\n\n## API Usage\n\nCheck [Mafkoud API Documentation](https://documenter.getpostman.com/view/11050349/Tzm2HxUB) for more info.\n\n## Built With\n\nList of any major frameworks used to build the project.\n\n* [NodeJS](https://nodejs.org/) - JS runtime environment\n* [ExpressJS](https://expressjs.com/) - The NodeJS framework used\n* [MongoDB](https://www.mongodb.com/) - NoSQL Database uses JSON-like documents with optional schemas\n* [Mongoose](https://mongoosejs.com/) - Object Data Modeling (ODM) library for MongoDB and NodeJS\n* [Docker](https://www.docker.com/) - An open platform for developing, shipping, and running applications\n* [Docker Compose](https://docs.docker.com/compose/) - Compose is a tool for defining and running multi-container Docker applications\n* [PM2](https://pm2.keymetrics.io/) - Advanced process manager for production Node.js applications\n* [Argon2](https://www.npmjs.com/package/argon2) - Encryption \u0026 Decryption Algorithm\n* [Vonage-Nexmo](https://www.vonage.com/communications-apis/) - Offers communications APIs\n* [Cloudinary](https://cloudinary.com/) - Cloud-based service\n* [Compression](https://www.npmjs.com/package/compression) - NodeJS compression middleware\n* [Cors](https://www.npmjs.com/package/cors) - NodeJS package for providing a Connect/Express middleware that can be used to enable CORS with various options\n* [Datauri](https://www.npmjs.com/package/datauri) - Create DataURI scheme easily\n* [Dotenv](https://www.npmjs.com/package/dotenv) - Loads environment variables from a . env file into process. env\n* [Rate Limiter](https://www.npmjs.com/package/express-rate-limit) - Basic IP rate-limiting middleware for Express\n* [Helmet](https://www.npmjs.com/package/helmet) - Secure Express apps by setting various HTTP headers\n* [JWT](https://jwt.io/) - Compact URL-safe means of representing claims to be transferred between two parties\n* [Method Override](https://www.npmjs.com/package/method-override) - Use HTTP verbs such as PUT or DELETE in places where the client doesn't support it.\n* [Moment](https://momentjs.com/) - JavaScript library which helps is parsing, validating, manipulating and displaying date/time in JavaScript in a very easy way\n* [Morgan](https://www.npmjs.com/package/morgan) - HTTP request logger middleware for NodeJS\n* [Multer](https://www.npmjs.com/package/multer) - NodeJS middleware for handling multipart/form-data\n* [Nodemailer](https://www.npmjs.com/package/nodemailer) - Easy as cake e-mail sending from your Node.js applications\n* [Passport](http://www.passportjs.org/) - Express-compatible authentication middleware for NodeJS\n* [Passport JWT](http://www.passportjs.org/packages/passport-jwt/) - Creates a new extractor that looks for the JWT in the given URL query parameter\n* [Validator](https://www.npmjs.com/package/validator) - A library of string validators and sanitizers.\n* [WebSocket](https://www.npmjs.com/package/websocket) - Websocket Client \u0026 Server Library implementing the WebSocket protocol as specified in RFC 6455.\n* [WS](https://www.npmjs.com/package/ws) - Simple to use, blazing fast and thoroughly tested websocket client and server for NodeJS\n* [Winston](https://www.npmjs.com/package/winston) - A logger for just about everything.\n* [XSS Clean](https://www.npmjs.com/package/xss-clean) - Middleware to sanitize user input\n\n## To-do\n\n* Using MicroServices with Event-Driven.\n\n* Using TypeScript.\n\n## Known Bugs\n\nFeel free to email me at mle.mahmoud.yasser@gmail.com if you run into any issues or have questions, ideas or concerns.\nPlease enjoy and feel free to share your opinion, constructive criticism, or comments about my work. Thank you! 🙂\n\n\u003c!-- CONTRIBUTING --\u003e\n## Contributing\n\nContributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are **greatly appreciated**.\n\n1. Fork the Project\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\u003c!-- CONTACT --\u003e\n## Contact\n\nTwitter - [@Mahmoud03203227](https://twitter.com/Mahmoud03203227)\n\nEmail - [mle.mahmoud.yasser@gmail.com]()\n\nFacebook - [MahmoudYasserMLE](https://www.facebook.com/MahmoudYasserMLE/)\n\nProject: [https://github.com/Braineanear/MafkoudAPI](https://github.com/Braineanear/MafkoudAPI)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbraineanear%2Fmafkoud","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbraineanear%2Fmafkoud","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbraineanear%2Fmafkoud/lists"}