{"id":27122175,"url":"https://github.com/ashish-r/rails-file-share","last_synced_at":"2025-04-07T11:26:02.548Z","repository":{"id":41634804,"uuid":"263414326","full_name":"ashish-r/rails-file-share","owner":"ashish-r","description":"File Sharing Application - Ruby on Rails","archived":false,"fork":false,"pushed_at":"2023-01-19T19:12:27.000Z","size":1802,"stargazers_count":1,"open_issues_count":34,"forks_count":4,"subscribers_count":3,"default_branch":"master","last_synced_at":"2023-02-28T21:56:36.134Z","etag":null,"topics":["file-sharing","ruby","ruby-on-rails"],"latest_commit_sha":null,"homepage":null,"language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ashish-r.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-05-12T18:09:57.000Z","updated_at":"2022-10-09T06:11:58.000Z","dependencies_parsed_at":"2023-02-11T17:45:39.098Z","dependency_job_id":null,"html_url":"https://github.com/ashish-r/rails-file-share","commit_stats":null,"previous_names":[],"tags_count":null,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ashish-r%2Frails-file-share","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ashish-r%2Frails-file-share/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ashish-r%2Frails-file-share/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ashish-r%2Frails-file-share/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ashish-r","download_url":"https://codeload.github.com/ashish-r/rails-file-share/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247642275,"owners_count":20971862,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["file-sharing","ruby","ruby-on-rails"],"created_at":"2025-04-07T11:26:00.988Z","updated_at":"2025-04-07T11:26:02.530Z","avatar_url":"https://github.com/ashish-r.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://github.com/ashish-r/rails-file-share/blob/master/LICENSE)\n\n# File Sharing Application - Product Document\n\n## Objective\nBuild an online file sharing application using Rails.\n\nThis application should have the following features:\n\n### User Management\n\n#### Sign up\n\n- 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:\n  1. Unique username: The application should provide a warning incase the username is already taken.\n  2. Email address\n  3. Password: The password should contain -\n     1. Greater than 8 characters\n     2. Include at least one uppercase letter\n     3. Include at least one lower\n     4. Include at least one letter\n\n  ![Screenshot](https://raw.githubusercontent.com/ashish-r/rails-file-share/master/screenshots/signup.png)\n\n#### Login\n\n- Once an account is created, a user should be able to login to their account.\n  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.\n  2. If the login is unsuccessful: Then the following message should be displayed - “Couldn’t find that user! Please try again”\n\n  ![Screenshot](https://raw.githubusercontent.com/ashish-r/rails-file-share/master/screenshots/login.png)\n\n#### Logout\n\nA 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.\n\n\n#### User Profile\n\n- There should be a profile page for every user. They should be able to update various details about their account like:\n  1. Name\n  2. Email address\n\n  ![Screenshot](https://raw.githubusercontent.com/ashish-r/rails-file-share/master/screenshots/profile.png)\n\n\n### File Management\n\nHere are the various features needed for file management:\n\n  - **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:\n    1. Name (include extension), e.g. “big_win.pdf”\n    2. Upload date: This is the date on which the file has been uploaded. The date should be presented in the format of “\u003cDay\u003e \u003cMonth\u003e \u003cYear\u003e” (e.g. 23 May 2018).\n  - **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.\n  - **File Download**: A user should be able to click on the download action next to every file to download the associated file.\n  - **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.\n  - **File Deletion**: A user should be able to click on the delete action next to every file to delete the associated file.\n\n  ![Screenshot](https://raw.githubusercontent.com/ashish-r/rails-file-share/master/screenshots/home.png)\n\n\n### File Sharing\n\nThere should be a stand-alone page for a shared file.\n\n  ![Screenshot](https://raw.githubusercontent.com/ashish-r/rails-file-share/master/screenshots/sharing.png)\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fashish-r%2Frails-file-share","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fashish-r%2Frails-file-share","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fashish-r%2Frails-file-share/lists"}