Search code examples
javaandroidprogramming-languagesserver-side

Local Files Server


I have an idea for a project but I don't have very clear steps that should be followed, for must develop first. Well the idea is this, in the place where I study there is a wireless network but rarely provides us internet,I want to use that network (LAN without internet) to download files (practices, past exams, programs, manuals, etc.), receive notifications releases, conferences, courses and others. I want to deploy a server where the files are stored, and also a person manages to upload the notifications, and other files.For students I want to deploy an app that allows them to access the server and download files and receive notifications in order is part of what I want to develop. The problem is that I have doubts in some places, for example: you can transfer files wirelessly massively? And what do I need for that ?. Is the project has something to do with an intranet ?, is the same FTP server? Maybe some questions are very basic, I understand some of the terms but I don't know if I want to do is related. First of all, Thanks.


Solution

  • What you ask for can be mainly handled on the server side, via simple standard web technologies, and the user only using a browser of their choice. Set up a simple Web (HTTP) server as proxy for file distribution. E.g. Apache DocumentRoot With HTTP, you can use all kinds of clients, and supports most cases for file transfer. Uploading is a different story, and requirements can be kept separate from download. FTP CAN be an option for upload. When it comes to notifications, I would recommend starting with a simple RSS feed. You get both notifications, history and client support out of the box. Some RSS Feeds

    Update: Delivering files over HTTP and RSS are basic Web building blocks. Just keep it simple, and most internet-technology-aware people will be able to help.

    For a simple Proof Of Concept, install Apache Web Server and access files from a folder on your local drive. In addition to the static content you're delivering, you can probably set up a couple of .HTML web pages for information and navigation, which later can become dynamic (PHP, Python or .javascript) pages.

    Concerning scaling: Start with a single Apache (server) instance. Make sure its located centrally on the wired network. Problems will arise concerning the Wireless link to the clients LONG before the wired network becomes an issue.

    Recommended approach:

    1. Set up a PoC with Apache + RSS + Web Browser to get a feel for the concepts, what they give you, and how it fits to your problem domain. For help ask for "someone who knows how to set up a web server" Any half-decent IT-student with respect for themself should be able to help.
    2. Talk to a (Linux) System Admin in the IT department. They should be able to tell you how they can help you set up the server, applications and what you require on the server, as they most likely already have a couple of similar setups. This is the guy you talk to if you need to scale up the Web Server (Get more than 1000 concurrent users)
    3. Talk to a Network Admin, or your favorite tech/hardware guy, who knows more about the physical stuff, like networks, WIFI aso. This is the guy you talk to regarding bandwith- and network-related issues.

    Avoid using the word "APP". People will shift focus on the wrong issues. Solve the root problem of content distribution first. The app (access and navigation layer) can be dealt with later. There are alternatives to Apache. I've heard.