Code Monkey home page Code Monkey logo

ftp-filemanager's Introduction

ftp-filemanager

A 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).

Features

  • Download & upload.
  • CRUD operations.
  • Move file & folder.
  • Rename file & folder.
  • Search for files.
  • Change file permissions.
  • View file details.

Requirements

  • php >= 5.5.0
  • Apache rewrite module enabled.

Dependencies

This application uses :

  • php-ftp-client : A library that's wraps the PHP FTP extension functions in an oriented objet way.
  • filemanager-template : A filemanager template that's offer a clean interface, and some other important features.

How to setup this project

Download the repo or clone it using git:

git clone https://github.com/ELAMRANI744/ftp-filemanager

Then install composer dependencies :

composer install

Deployment

  1. Move project files to the production server folder (tipically public_html folder).
  2. Install the application dependencies (install composer dependencies).
  3. Disable the debugging mode in config/app.php, and you ready to start.

Development

For development environment, you need to install npm dependencies (You need also install composer dependencies):

npm install

Worth knowing about this project MVC architecture

Before 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 (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.

Concepts

This 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 :

  • Design UI/UX

    • This project is designed taking into consideration the UI/UX approach, you can check the design muckop in behance.
  • Web integration :

    • Using css preprocessors (SASS).
    • Vanilla javascript (trying to make a clean code).
    • Using AJAX (Fetch API & XMLHttpRequest).
    • Using some of ES6 features.
    • Using Gulp Task runner.
  • Server side development :

    • Dependency injection container (The base Controller injection).
    • Basic Http component to simulate Http requests and responses.
    • A very simple template renderer (To separate Php code from Html - Using PHP Raw Templating).
    • A basic routing component (The hard part for me).
    • PHP session management & some of security concerns.
    • Handling PHP errors & exceptions.
    • SOLID principles.
    • Dependency injection.
    • The Front controller pattern.

Contribution

All contributions are welcome, for a features ideas check the TODO.md file. Thank you.

ftp-filemanager's People

Contributors

amranich avatar vbenincasa avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

ftp-filemanager's Issues

when i deploy it use nginx server i can't login

when i deploy it use nginx server i can't login.
when i click start or use http://www.domain.com/login
i will download a file and the content is :

getQueryString(), $request->getMethod() ); $container = new DIC(include(dirname(__DIR__) . '/config/services.php')); $app = new AppHandler($request, $dispatcher, $container); $app->init(); $response = $app->handle(); if ($response instanceof Response) { $response->send(); }

Unable to list empty folders

Nice project Amrani, thanks for making it public.

The script does not allow access to empty folders, it displays the error "Error : Unable to get files list for [xxx] directory."

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.