GithubHelp home page GithubHelp logo

japache's Introduction

Japache

Aplikacja zrealizowana w ramach projektu na studiach w języku Java. Jest to prosty konsolowy serwer plików statycznych w postaci zasobu sieciowego. Główną zaletą jest jego prostota umożliwająca działanie pod systemem zarówno Windows jak i Linux.

Autorzy

Projekt został wykonany przez studentów Politechniki Śląskiej na wydziale Wydział Inżynierii Materiałowej i Metalurgii na kierunku Informatyka Przemysłowa:

  • Michał Kucharski, główne zadanie to chorobliwie paniczna i nadmierna optymalizacja skutkująca ogromem poprawek.
  • Monika Husar, główne zadanie to ogrom przeróżnych pomysłów, których nie było czasu zaimplemetnować.

Funkcjonalność

  • Serwowanie plików z zadanego katalogu pod zadanym adresem i portem poprzez generowanie odpowiedzi na zapytania typu "GET" i "HEAD"
  • Możliwość konfiguracji z pliku (plik config.properties) opcji takich jak:
    • katalog z danymi
    • adres i port na którym serowana będzie usługa
    • tryb debugowania (rozumiany jako tryb "verbose")
    • listowanie katalogów
    • zapis do pliku (z opcją czyszczenia logów)
  • Generowanie skromnych ale czytelnych błędów typu 501, 404 zgodnych w formatowaniu z Internet Explorer 9
  • Zabezpieczenia przed m. in:
    • wyjściem dostępem poza zadeklarowany katalog z danymi
    • skasowaniem fragmentu konfiguracji
    • skasowaniem całego pliku kofnguracyjnego
  • Wielowątkowość i zdolność do pracy na systemach Windows i Linux nawet pod sporym obciążeniem
  • Zwracanie w konsoli prostych i czytelnych, formatowanych komunikatów
  • Skalowalność projektu prosta w rozbudowie o kolejne możliwości w pliku oraz obsłudze po stronie kodu

Niedoskonałości i ewentualne możliwości rozbudowy

  • Strony HTML wrzucane w podkatalogi muszą mieć linkowane adresy absoltunie względem głównego katalogu zamiast relatywnych, ponieważ w obecnie użytym rozwiązaniu (klasa HttpServer) nie istnieje możliwość pilnowania ścieżki podzapytania.
  • Dodanie w kodzie obsługi innych zaimplementowanych już możliwych do wygenerowania stron z błędami (na 30 opisanych kodów zwracane jest zaledwie 5)
  • Dodanie graficznego interfejsu użytkownika (z ciągłym wsparciem dla tekstowych konsoli systemu Linux)
  • Dodanie systemu wielu języków
  • Dodanie obsługi SSL

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.