Closed

Academic project - Web hosting virtual server

This project received 7 bids from talented freelancers with an average bid price of $157 USD.

Get free quotes for a project like this
Employer working
Skills Required
Project Budget
$30 - $250 USD
Total Bids
7
Project Description

Assignment :

fredhosting. com – IT services hosting
Outline
You have been commissioned to setup an IT services hosting service. Internet entrepreneur Fred Norris wants to offer everyone free computer access and website hosting. Users sign up online and get an account on a Linux server accessible via secure shell (ssh) and secure ftp (sftp) access. They will also have web space on an Apache webserver and one MySQL database account with the same user name as their account name. Users' web space will be in $HOME/public_html and will be accessible using the following urls: http://fredhosting. com/~username/
http://username.fredhosting. com

Specification
You, as the developer need to setup a server, install and configure appropriate software and write dynamic configuration scripts that together provide services to the following specification.
Server to be built on a virtual machine running Ubuntu Server operating system
Users register to obtain the service using a web based form accessible at [url removed, login to view]
Users should get secure shell (ssh) access as well as sftp access to their accounts. Regular FTP access should be regarded as insecure but is permissible.
The users' URLs will be in the form, [url removed, login to view] and the user will also be able to access their webspace using [url removed, login to view]~username/
Users should be allowed to choose their own user name, which will also be the name of their subdomain and the name of their database. You may also wish to let them choose their own password or you may wish to allocate a random password.
You may also wish to request and record other information from the user, relevant to their sign up.
Root level processes should be invoked using script(s) -these could be run from a cron job owned by root.
Users should be given a MySQL database and a user name with privileges restricting them to their own database only.
The final act of creating accounts / sub domains / databases / hosts entries and so on could be handled by a cron job belonging to the root user and running periodically every minute.
Normally new web hosts are registered in DNS “A” records. For the purpose of this assignment it is sufficient to add a suitable entry to /etc/hosts in order to be read by the web browser
Consider how your system could be implemented as a cloud based service. This does not need to be implemented but you should include a section of advisory notes on this topic in your documentation.
OPTIONAL (for additional marks): You may also wish to offer other features / facilities in your system. For example, changing of password, browser uploads or pre-installed software (for example phpMyAdmin, Wordpress, etc.)
OPTIONAL (for additional marks): Confirmation of account creation should be emailed to the new user. (Normally email confirmations would work to any sign-up address. Because of the constraints in the lab, all demonstration should take place on the local machine and therefore you will need test user accounts which can be signed up as OR as advised during practical sessions)
OPTIONAL (for bonus marks): Fred Wiggins has requested that it would be nice to have some mechanism on the sign-up page to determine that the applicant is actually a person - and not a bot.
Deliverable
What you submit should include, but need not be restricted to:
Documentation of how the system works and rationale for the methods used.
Design of system, (diagrams, pseudo-code or flowcharts)
Commented source code (preferably well commented.)
Demonstration / testing – the demonstration may not be restricted only to the tutor.

Looking to make some money?

  • Set your budget and the timeframe
  • Outline your proposal
  • Get paid for your work

Hire Freelancers who also bid on this project

    • Forbes
    • The New York Times
    • Time
    • Wall Street Journal
    • Times Online