Como implementar envio de arquivos para site?

Bom dia gente!

Sou novo em desenvolvimento web, mas sou muito curioso e determinado.

Venho humildemente pedir uma ajuda para implementar alguns recursos que
para vocês pode ser muito simples, mas para mim são muuuito complicados ainda rs.

01 - Preciso criar um site que possua a funcionalidade para enviar arquivos (videos e fotos), apagar e renomear estes arquivos.

02 - O usuário terá um login e senha e só ele e terá acesso aos arquivos que ele enviou.

03 - Após enviado os arquivos ele os verá em uma tela do site, tendo opção de ver em lista ou em “snapshot”.

04 - Ele terá um campo para buscar vídeos por nome.

05 - Seria interessante o recurso arrastar e soltar além do botão de “add arquivo”.

06 - ATENÇÃO: Os vídeos NÃO serão reproduzidos no site. não será necessário um player.

OBS.: Não tenho nada do site criado ainda, só o domínio e a hospedagem comprados na RedeHost, vou começar
do zero.

Alguém pode me indicar os recursos, linguagens, etc necessários para implementar estas soluções?

Estou usando o XAMPP.

Obrigado mesmo a quem ajudar.

Olá, Obrigado pela ajuda.
Postei aqui no fórum um print do esquema de Entidade Relacionamento desse site, e gostaria que desse uma olhada, talvez encontre algum erro.

Se mais alguém quiser ajudar também agradeço.
http://www.guj.com.br/java/308135-correcoes-em-entidade-relacionamento#1639411