Secrets sharing

The main goal of the project is to allow people to safely share files and/or text.

You will need to implement the API for it.

Main workflow / functionality:

  1. User can register (using email + password) and then log in using those email and password

  2. Authorized users have ability to:

    a. Upload a file. Users should be able to specify if they want the file to be automatically deleted once it’s downloaded. After uploading, the user will receive the file URL (file can only be downloaded from this URL). It is important to have some sort of file urls protection (at the very least, the urls should not have a simple numeric identifier like /api/files/1; a better level of protection is welcomed)

    b. Upload a text (string). Users should be able to specify if they want the information to be automatically deleted once it’s accessed. After sending the text, the user should receive the text URL (the text can only be accessed from this URL). It is important to have some sort of urls protection (at the very least, the urls should not have a simple numeric identifier like /api/files/1; a better level of protection is welcomed)

    c. Get the list of files/texts they have uploaded previously. User cannot see the deleted files/texts

    d. Delete a file/text they have uploaded earlier

  3. Anonymous users can:

    a. Access files/texts using the URLs generated from steps 2.a, 2.b

Technical requirements:

  1. .NET 6+, asp.net core
  2. Code comments should be in English

Optional:

  1. Tests
  2. Git for revision history. You can use github/gitlab/bitbucket for your convenience and give us the link to it. OR you can just send us the archive with the git folder. Commit messages should be in English
  3. Storing files on S3 instead of file system
  4. Docker-file for the application