In order to make a useful product, we will be creating a web application. There are many steps and features that will go into making a viable application and our major requirements are split into 3 high-level categories:
Funtional Requirements
Non-functional Requirements
Environmental Requirements
Below is a framework layout of our requirements and a more detailed explaination of all requirements are available from the Deliverables page in our final draft of the Requirements specification Document.
Functional Requirements (FR)
FR-1: End-User can login and view data for a specified repository from GitHub.
FR-1.1: Search application database.
FR-1.2: Request mining of repository data if not already in database.
FR-1.2.1: Decline mining request and notify the End-User who made the request.
FR-1.2.2: Accept mining request, retrieve data from GitHub, and store it in the database.
FR-1.2.3: Notify End-User and Admin that mining and storage is complete.
FR-1.3: Analyze data and display graphics.
FR-1.3.1: Compare multiple repositories.
FR-2: Administrative management capabilities.
FR-2.1: View and edit the application database.
FR-2.2: Pause and resume mining of unfinished repositories.
FR-2.3: Configure database updates.
FR-2.4: Grant other users admin rights.
Non-Functional Requirements (NFR)
NFR-1: Response times with all data within one minute.
NFR-1.1: Display table of raw data within 5-10 seconds followed by graphics as they are generated.
NFR-2: Easy to use.
NFR-2.1: Layout of application is easy to follow and quick to access desired pages.
NFR-3: Scalability
NFR-3.1: The ability to handle a growing amount of tasks from users and other requirements.