{"id":16414763,"url":"https://github.com/amranich/ftp-filemanager","last_synced_at":"2025-03-23T06:31:26.808Z","repository":{"id":45740097,"uuid":"280837669","full_name":"AmraniCh/ftp-filemanager","owner":"AmraniCh","description":"A web-based FTP client application, built with a simple MVC architecture with no frameworks or libraries (except my owns).","archived":false,"fork":false,"pushed_at":"2021-10-17T18:12:29.000Z","size":472,"stargazers_count":26,"open_issues_count":1,"forks_count":10,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-18T18:42:09.617Z","etag":null,"topics":["ftp-filemanager","full-stack-development","mvc","mvc-framework","mvc-pattern","php"],"latest_commit_sha":null,"homepage":"","language":"PHP","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/AmraniCh.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}},"created_at":"2020-07-19T09:58:23.000Z","updated_at":"2025-02-15T01:33:28.000Z","dependencies_parsed_at":"2022-09-01T12:00:28.864Z","dependency_job_id":null,"html_url":"https://github.com/AmraniCh/ftp-filemanager","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AmraniCh%2Fftp-filemanager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AmraniCh%2Fftp-filemanager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AmraniCh%2Fftp-filemanager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AmraniCh%2Fftp-filemanager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AmraniCh","download_url":"https://codeload.github.com/AmraniCh/ftp-filemanager/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245066496,"owners_count":20555402,"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":["ftp-filemanager","full-stack-development","mvc","mvc-framework","mvc-pattern","php"],"created_at":"2024-10-11T06:54:57.760Z","updated_at":"2025-03-23T06:31:25.423Z","avatar_url":"https://github.com/AmraniCh.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ftp-filemanager\n\nA web based FTP client application to manage your FTP files, built with a simple MVC architecture, no frameworks or libraries are used (except my owns).\n\n![](https://user-images.githubusercontent.com/49124992/93536723-9d91f400-f941-11ea-86c4-2f942f00b842.gif)\n\n## Features\n* Download \u0026 upload.\n* CRUD operations.\n* Move file \u0026 folder.\n* Rename file \u0026 folder.\n* Search for files.\n* Change file permissions.\n* View file details.\n\n## Requirements\n\n* php \u003e= 5.5.0\n* Apache rewrite module enabled.\n\n## Dependencies\n\nThis application uses :\n* [php-ftp-client](https://github.com/lazzard/php-ftp-client) : A library that's wraps the PHP FTP extension functions in an oriented objet way. \n* [filemanager-template](https://github.com/ELAMRANI744/filemanager-template) : A filemanager template that's offer a clean interface, and some other important features.\n\n## How to setup this project\n\nDownload the repo or clone it using git:\n\n```\ngit clone https://github.com/ELAMRANI744/ftp-filemanager\n```\n\nThen install composer dependencies :\n\n```\ncomposer install\n```\n\n## Deployment\n\n1. Move project files to the production server folder (tipically `public_html` folder).\n2. Install the application dependencies (install composer dependencies).\n3. Disable the debugging mode in `config/app.php`, and you ready to start.\n\n## Development\n\nFor development environment, you need to install npm dependencies (You need also install composer dependencies):\n\n```\nnpm install\n```\n\n## Worth knowing about this project MVC architecture\n\nBefore the development process, one of the requirements was building an application that's based on MVC pattern without using any of the existing frameworks (Laravel, Symfony ...), for that I have started with this [tutorial](https://github.com/PatrickLouys/no-framework-tutorial) (Thanks for the author), this tutorial was a great place to understand the MVC pattern and know how the biggest frameworks actually works, however this Tuto uses some of others components that's necessary for every MVC application, and in this point i've decided to not use any of them, but instead trying to understand the basic concepts for each of them, and attempt to build my own components (light and simple ones for this time) - you can find them in the `lib` folder.\n\n## Concepts\n\nThis is a full stack project, a lot of things covered here either in front end or backend part, however the project covered this web programming techniques : \n\n* Design UI/UX\n    * This project is designed taking into consideration the UI/UX approach, you can check the design muckop in [behance](https://www.behance.net/gallery/104400253/FTP-Client-web-application).\n\n* Web integration :\n\t* Using css preprocessors (SASS).\n\t* Vanilla javascript (trying to make a clean code).\n\t* Using AJAX (Fetch API \u0026 XMLHttpRequest).\n\t* Using some of ES6 features.\n\t* Using Gulp Task runner.\n\n* Server side development : \n    * Dependency injection container (The base Controller injection).\n    * Basic Http component to simulate Http requests and responses.\n    * A very simple template renderer (To separate Php code from Html - Using PHP Raw Templating).\n    * A basic routing component (The hard part for me).\n    * PHP session management \u0026 some of security concerns.\n    * Handling PHP errors \u0026 exceptions.\n    * SOLID principles.\n    * Dependency injection.\n    * The Front controller pattern.\n  \n## Contribution\n\nAll contributions are welcome, for a features ideas check the `TODO.md` file. Thank you. \n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famranich%2Fftp-filemanager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Famranich%2Fftp-filemanager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famranich%2Fftp-filemanager/lists"}