{"id":19583425,"url":"https://github.com/richardmiruka/alx-files_manager","last_synced_at":"2026-04-10T01:57:33.712Z","repository":{"id":239357335,"uuid":"799311480","full_name":"RichardMiruka/alx-files_manager","owner":"RichardMiruka","description":"A Files manager project","archived":false,"fork":false,"pushed_at":"2024-05-16T12:04:44.000Z","size":121,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-09T05:37:00.107Z","etag":null,"topics":["backend","es6","expressjs","kue","mongodb","nodejs","nosql","redis","redis-server"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/RichardMiruka.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-05-11T18:45:23.000Z","updated_at":"2024-05-16T12:04:48.000Z","dependencies_parsed_at":"2024-05-16T06:04:36.436Z","dependency_job_id":"a4bb64e6-b00f-48e4-bd6d-eabf4c4dd073","html_url":"https://github.com/RichardMiruka/alx-files_manager","commit_stats":null,"previous_names":["richardmiruka/alx-files_manager"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RichardMiruka%2Falx-files_manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RichardMiruka%2Falx-files_manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RichardMiruka%2Falx-files_manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RichardMiruka%2Falx-files_manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RichardMiruka","download_url":"https://codeload.github.com/RichardMiruka/alx-files_manager/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240850196,"owners_count":19867834,"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":["backend","es6","expressjs","kue","mongodb","nodejs","nosql","redis","redis-server"],"created_at":"2024-11-11T07:42:29.469Z","updated_at":"2026-04-10T01:57:28.677Z","avatar_url":"https://github.com/RichardMiruka.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Files manager \n\n\u003e Back-end\n\u003e JavaScript\n\u003e ES6\n\u003e NoSQL\n\u003e MongoDB\n\u003e Redis\n\u003e NodeJS\n\u003e ExpressJS\n\u003e Kue\n\n![image](https://github.com/RichardMiruka/alx-files_manager/assets/105627752/e25cb26f-2313-4ae0-a40a-0a61246dd9e9)\n\nThis project is a summary of this back-end trimester: authentication, NodeJS, MongoDB, Redis, pagination and background processing.\n\nThe objective is to build a simple platform to upload and view files:\n\n* User authentication via a token\n* List all files\n* Upload a new file\n* Change permission of a file\n* View a file\n* Generate thumbnails for images\n\nYou will be guided step by step for building it, but you have some freedoms of implementation, split in more files etc… (utils folder will be your friend)\n\n## Resources \n\n* [Node JS getting started](https://intranet.alxswe.com/rltoken/buFPHJYnZjtOrTd610j6Og)\n* [Process API doc](https://intranet.alxswe.com/rltoken/uYPplj2cPK8pcP0LtV6RuA)\n* [Express getting started](https://intranet.alxswe.com/rltoken/SujfeWKCWmUMomfETjETEg)\n* [Mocha documentation](https://intranet.alxswe.com/rltoken/FzEwplmoZiyGvkgKllZNJw)\n* [Nodemon documentation](https://intranet.alxswe.com/rltoken/pdNNTX0OLugbhxvP3sLgOw)\n* [MongoDB](https://intranet.alxswe.com/rltoken/g1x7y_3GskzVAJBTXcSjmA)\n* [Bull](https://intranet.alxswe.com/rltoken/NkHBpGrxnd0sK_fDPMbihg)\n* [Image thumbnail](https://intranet.alxswe.com/rltoken/KX6cck2nyLpQOTDMLcwxLg)\n* [Mime-Types](https://intranet.alxswe.com/rltoken/j9B0Kc-4HDKLUe88ShbOjQ)\n* [Redis](https://intranet.alxswe.com/rltoken/nqwKRszO8Tkj_ZWW1EFwGw)\n\n## Learning Objectives\n\n* how to create an API with Express\n* how to authenticate a user\n* how to store data in MongoDB\n* how to store temporary data in Redis\n* how to setup and use a background worker\n\n# :book: ALX Backend User Data.\n## :page_with_curl: Topics Covered\n1. Personal Data.\n2. Basic authentication.\n3. Session authentication.\n\n## :wrench: Project setup.\n```bash\n# Create project directory and readme.\nmkdir ./alx-backend-user-data/\ntouch ./alx-backend-user-data/README.md\n\ncd alx-backend-user-data\n\n\n# Create repository.\ngit init\ngit add .\ngit commit -m 'first commit'\ngit remote add origin \u003cREMOTE_URL\u003e\ngit push\n\n# Create gitignore file.\ntouch .gitignore\n\necho '*/__pycache__/\n' \u003e .gitignore\n```\n\n# :computer: Projects\n## [0x00. Personal data](0x00-personal_data)\nThe project is about personal data and user management. The project required implementing;\n* A log filter to obfuscate PII fields\n* Encrypting passwords\n* Checking the validity of an input password\n* Authenticating to a database using environment variables. \n\n### :wrench: Project setup.\n```bash\n# Create project directory and readme.\nmkdir ./0x00-personal_data/\ntouch ./0x00-personal_data/README.md\ncd 0x00-personal_data\n```\n\u003e [:point_right: Go to project](0x00-personal_data)\n\n## [0x01. Basic authentication](0x01-Basic_authentication)\nThe project involves learning about the authentication process and implementing a Basic Authentication on a simple API written in Python Flask Framework requiring knowledge in;\n* REST API Authentication Mechanisms\n* HTTP header Authorization\n* Flask, and \n* Base64 concepts.\n\n### :wrench: Project setup.\n```bash\n# Create project directory and readme.\nmkdir ./0x01-Basic_authentication/\ntouch ./0x01-Basic_authentication/README.md\ncd 0x01-Basic_authentication\n```\n\u003e [:point_right: Go to project](0x00-python_variable_annotations)\n\n\u003c!----\u003e\n## [0x02. Session authentication](0x02-Session_authentication)\nThe project is about implementing a session authentication mechanism without installing any other module. The learning objectives of the project include;\n* Understanding authentication, session authentication.\n* Cookies, sending cookies, and parsing cookies.\n\n### :wrench: Project setup.\n```bash\n# Create project directory and readme.\nmkdir ./0x02-Session_authentication/\ntouch ./0x02-Session_authentication/README.md\ncd 0x02-Session_authentication\n```\n\u003e [:point_right: Go to project](0x02-Session_authentication)\n\u003c!----\u003e\n\n# :man: Author and Credits.\nThis project was done by [SE. Richard Miruka](https://github.com/RichardMiruka). Feel free to get intouch with me;\n\n:iphone: WhatsApp [+254700129706](https://wa.me/254700129706)\n\n:email: Email [richardmiruka96@gmail.com](mailto:richardmiruka96@gmail.com)\n\n:thumbsup: A lot of thanks to [ALX-Africa Software Engineering](https://www.alxafrica.com/) program for the project requirements.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frichardmiruka%2Falx-files_manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frichardmiruka%2Falx-files_manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frichardmiruka%2Falx-files_manager/lists"}