As a Full Stack Developer, complete the features of the application by planning the development in terms of sprints and then push the source code to the GitHub repository. As this is a prototyped application, the user interaction will be via a command line.
Company Lockers Pvt. Ltd. hired you as a Full Stack Developer. They aim to digitize their products and chose LockedMe.com as their first project to start with. You’re asked to develop a prototype of the application. The prototype of the application will be then presented to the relevant stakeholders for the budget approval. Your manager has set up a meeting where you’re asked to present the following in the next 15 working days (3 weeks):
-
Specification document - Product’s capabilities, appearance, and user interactions
-
Number and duration of sprints required
-
Setting up Git and GitHub account to store and track your enhancements of the prototype
-
Java concepts being used in the project
-
Data Structures where sorting and searching techniques are used.
-
Generic features and three operations:
-
Retrieving the file names in an ascending order
-
Business-level operations:
-
Option to add a user specified file to the application
-
Option to delete a user specified file from the application
-
Option to search a user specified file from the application
-
Navigation option to close the current execution context and return to the main context
-
-
Option to close the application
-
The goal of the company is to deliver a high-end quality product as early as possible.
-
Plan more than two sprints to complete the application
-
Document the flow of the application and prepare a flow chart
-
List the core concepts and algorithms being used to complete this application
-
Code to display the welcome screen. It should display:
-
Application name and the developer details
-
The details of the user interface such as options displaying the user interaction information
-
Features to accept the user input to select one of the options listed
-
-
The first option should return the current file names in ascending order. The root directory can be either empty or contain few files or folders in it
-
The second option should return the details of the user interface such as options displaying the following:
-
Add a file to the existing directory list
-
You can ignore the case sensitivity of the file names
-
Delete a user specified file from the existing directory list
-
You can add the case sensitivity on the file name in order to ensure that the right file is deleted from the directory list
-
Return a message if FNF (File not found)
-
Search a user specified file from the main directory
-
You can add the case sensitivity on the file name to retrieve the correct file
-
Display the result upon successful operation
-
Display the result upon unsuccessful operation
-
Option to navigate back to the main context
-
There should be a third option to close the application
-
Implement the appropriate concepts such as exceptions, collections, and sorting techniques for source code optimization and increased performance
You must use the following:
-
Eclipse/IntelliJ: An IDE to code for the application
-
Java: A programming language to develop the prototype
-
Git: To connect and push files from the local system to GitHub
-
GitHub: To store the application code and track its versions
-
Scrum: An efficient agile framework to deliver the product incrementally
-
Search and Sort techniques: Data structures used for the project
-
Specification document: Any open-source document or Google Docs
Following requirements should be met:
-
The source code should be pushed to your GitHub repository. You need to document the steps and write the algorithms in it.
-
The submission of your GitHub repository link is mandatory. In order to track your task, you need to share the link of the repository. You can add a section in your document.
-
Document the step-by-step process starting from sprint planning to the product release.
-
Application should not close, exit, or throw an exception if the user specifies an invalid input.
-
You need to submit the final specification document which includes:
-
Project and developer details
-
Sprints planned and the tasks achieved in them
-
Algorithms and flowcharts of the application
-
Core concepts used in the project
-
Links to the GitHub repository to verify the project completion
-
Your conclusion on enhancing the application and defining the USPs (Unique Selling Points)
-