Code Monkey home page Code Monkey logo

file-tree's Introduction

file-tree

Description

Task

Implement a web-based file manager that observes file changes. The work has been done in the framework of a practice-based research in computer science that took place in Exadel, 2013.

Steps

  • Implement a file indexing console application
    Implement console application which takes directory path as argument.
    The application should:

    • Create an index for each file in the target directory. Index should contain file name, file size and last update fields.
    • Collection of indexes should be serialised as XML on disc.
    • Before serialisation application should check if previously serialised data for target directory already exists.
    • Application should print complete report about file changes based on their previous and current index data.
    • After report old serialised data should be rewritten by actual.
  • Provide choice to use DB file indexes storage
    Make application more flexible: provide choice to store file indexes in DB.

    • Develop interface for required directory and file indexes operations. Refactor existed code to make it an implementation of the interface.
    • Develop another implementation of the interface which will use DB as file indexes storage. Write SQL script for DB creation. Store DB settings in application properties file. Use Spring framework JDBC data access abstraction for the implementation.
    • Use Inversion of Control (IoC) pattern to choose between two implementations. Create Spring context for the application. Select an implementation depending on key from application properties.
  • Create WEB application
    Create WEB application based on existed functionality.

    • Use Servlets/JSP technology to develop WEB application. Use Tomcat as J2EE web container.
    • The application should allow file tree navigation providing list of subdirectories as well as file changes indexes.
    • Provide user control for directory file indexes update.
    • (Optional) Use Spring Web MVC for the implementation.

Technologies: Maven, J2EE, Servlets/JSP, Tomcat, MVC, Spring Framework.

Configuration

MySQL Database

  1. Create database. Find and execute src/main/resources/DB create.sql.
  2. Tweak JDBC connection in jdbc connection.properties file.
  3. Set app.use.implementation to either springDBService or dbService in application.properties file if you want to use database as a storage.

XML

Set app.use.implementation to xmlService in application.properties file if you want to use XML-based storage.

Quick Start

  1. Deploy the application to Tomcat;
  2. Open http://localhost:8080/<deploy-path> in a browser;
  3. Type in any credentials;
  4. And browse your D:\ drive from the browser!

file-tree's People

Contributors

naxa777 avatar

Watchers

James Cloos avatar

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.