https://github.com/ashish-r/rails-file-share
File Sharing Application - Ruby on Rails
https://github.com/ashish-r/rails-file-share
file-sharing ruby ruby-on-rails
Last synced: 3 months ago
JSON representation
File Sharing Application - Ruby on Rails
- Host: GitHub
- URL: https://github.com/ashish-r/rails-file-share
- Owner: ashish-r
- License: mit
- Created: 2020-05-12T18:09:57.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2023-01-19T19:12:27.000Z (over 2 years ago)
- Last Synced: 2023-02-28T21:56:36.134Z (over 2 years ago)
- Topics: file-sharing, ruby, ruby-on-rails
- Language: Ruby
- Size: 1.72 MB
- Stars: 1
- Watchers: 3
- Forks: 4
- Open Issues: 34
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://github.com/ashish-r/rails-file-share/blob/master/LICENSE)
# File Sharing Application - Product Document
## Objective
Build an online file sharing application using Rails.This application should have the following features:
### User Management
#### Sign up
- As a new user, I should be able to register for a new account. The application should ask for the following details about a new user:
1. Unique username: The application should provide a warning incase the username is already taken.
2. Email address
3. Password: The password should contain -
1. Greater than 8 characters
2. Include at least one uppercase letter
3. Include at least one lower
4. Include at least one letter
#### Login
- Once an account is created, a user should be able to login to their account.
1. If the login is successful: They should be taken to their “File Dashboard” which will serve as their homepage and display the various files associated with their account.
2. If the login is unsuccessful: Then the following message should be displayed - “Couldn’t find that user! Please try again”
#### Logout
A logged in user should be able to log out by clicking a button. Once a user is logged out, they should be redirected to the login page.
#### User Profile
- There should be a profile page for every user. They should be able to update various details about their account like:
1. Name
2. Email address
### File Management
Here are the various features needed for file management:
- **File Dashboard**: This will contain the various files associated with a user account. The files should be displayed as tiles within a grid. The files should be organized in descending order of upload date, i.e. latest file first. For every file the following details should be displayed:
1. Name (include extension), e.g. “big_win.pdf”
2. Upload date: This is the date on which the file has been uploaded. The date should be presented in the format of “ ” (e.g. 23 May 2018).
- **File Upload**: A user should be able to click a button which will display a file uploader in the browser and select a file they would like to upload. A user should be able to upload one file at a time.
- **File Download**: A user should be able to click on the download action next to every file to download the associated file.
- **File Share**: A user should be able to turn on public sharing of a file using a “ON/OFF” toggle control. Once public sharing is turned on, then a unique URL should be made available next to the toggle button which is publically accessible. The user shouldn’t be able to delete or share this file.
- **File Deletion**: A user should be able to click on the delete action next to every file to delete the associated file.
### File Sharing
There should be a stand-alone page for a shared file.
