Implementation of a Mock Shell program which covers all the main linux commands using the Agile SCRUM Software Development Process in Java and the principles of Object-Oriented Programming. This was done using all the paradigms of Agile Software Development and various software design choices ensuring all stages were followed for timely completion mock user and client requirements.
Designed a set of CRC Cards, user stories, product backlog, followed daily sprint schedule as per industry maintained Agile SCRUM methodology, which was coupled with unit testing at each stage of the project!
This also followed Test-Driven Development, where the testing of all the commands and Java classes were done using JUnit testing.
Error checking was also an integral part of implementing this mock shell, where it was ensured that all possible errors that could be made were accounted for while implementing the commands.
Version Control Software originally used throughout this project - Subversion(SVN)
- Java
- Intellij IDE
- SVN
- JUnit Testing Version 4
- User stories, Product Backlogs
- Use of various software design principles and design choices at each stage of the project
- Go to src folder and then the driver folder and open the
JShell.java
file. Run this file to get an instance of our Mock Linux Shell in your terminal!
-
Change Directory command (cd)
-
Concatenate command (cat)
-
Copy command(cp)
-
Curl command(curl)
-
Echo command(echo)
-
Exit command(exit)
-
List command(ls)
-
LoadJShell FileName - When the user types in this command, your JShell must load the contents of the FileName and reinitialize everything that was saved previously into the FileName. This allows the user to start a new JShell session, type in load FileName and resume activity from where they left off previously.
-
SaveJShell FileName - The above command will interact with your real file system on your computer. When the above command is typed, you must ensure that the entire state of the program is written to the file FileName.
-
Make Directory command(mkdir)
-
Move command(mv)
-
Pop Directory Commadn(pop)
-
Print Working Directory command(pwd)
-
Print Documentation Command(man)
-
Redirection
-
Tree
-
Search
This project couldnt have been completed without the help and contirbution of the following amazing people :)
- Anaqi Amir
- Balraj Kharol
- Shashwat Doshi