Skip to content

Switchy is a command line Interface that facilitates managing the user repositories which are spread in different places on the secondary storages. Switchy comes with powerful functionalities that provides satisfaction for any git user.

Notifications You must be signed in to change notification settings

MustafaAhmed313/switchy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

63 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

                       ____               _   _            _
                      / ___|  __      __ (_) | |_    ___  | |__    _   _
                      \___ \  \ \ /\ / / | | | __|  / __| | '_ \  | | | |
                      ___) |   \ V  V /  | | | |_  | (__  | | | | | |_| |
                      |____/    \_/\_/   |_|  \__|  \___| |_| |_|  \__, |
                                                                   |___/

Table of contents:

Problem Statement:

Managing multiple repositories on a local device can be cumbersome, requiring manual tracking of paths, frequent navigation, and inefficient switching between projects. Developers often struggle with quickly accessing their most-used repositories and maintaining an organized workflow.

Solution:

Swichy provides a simple command-line interface to streamline repository management. By offering intuitive commands for adding, listing, updating, and accessing repositories, Swichy enhances productivity, reduces manual effort, and ensures seamless repository navigation. With efficient storage and retrieval mechanisms, Swichy simplifies the developer experience.

Features:

Functional Requirements:

Swichy is a command-line interpreter designed for easy management of repositories on a local device. The following are the functional requirements:

  • Repository Management

    • Initialize Storage: The system must allow users to initialize the data file where repository information is stored.
    • Add Repository: Users must be able to add a new repository by specifying its path.
    • List Repositories: The system must provide a command to list all stored repositories.
    • Find Repository: Users must be able to search for a repository by its name to retrieve its details.
    • Remove Repository: Users must be able to remove a repository by specifying its name.
    • Update Repository Path: The system must allow users to update the path of an existing repository.
    • Clear Repositories: Users must be able to clear all stored repositories at once.
  • Repository Access

    • Open Last Used Repository: Users must be able to display and access the last opened repository.
    • Redirect to Repository: Users must be able to open a specific repository by its name.
  • Help and Guidance

    • Help Command: The system must provide a help command to display information about available commands and their usage.

Non-Functional Requirements:

  • Performance

    • The system executes commands efficiently, with minimal latency.
    • It should be optimized to handle a large number of repositories without significant performance degradation.
  • Usability

    • The CLI provides clear error messages when invalid commands or arguments are used.
    • The command outputs should be human-readable and formatted for clarity.
  • Maintainability

    • The code follows modular principles to allow easy updates and modifications.
    • It should be well-documented for future improvements and debugging.
  • Portability

    • The system is platform-independent and run on major operating systems (Linux, macOS, Windows).
  • Reliability

    • The system ensures that repository data is not lost or corrupted due to unexpected failures.
    • It includes basic validation to prevent incorrect data from being stored.
  • Scalability

    • The system is able to support an increasing number of repositories without requiring significant changes to its architecture.
  • Extensibility

    • The design allows for future extensions, such as remote repository support or integration with version control systems.

Installation:

Contributors:

Swichy is an open-source project, and contributions from developers are highly encouraged. Contributors can help improve the project in the following ways:

  • Reporting Issues: Identifying and reporting bugs or suggesting enhancements.
  • Code Contributions: Submitting pull requests with new features, optimizations, or bug fixes.
  • Documentation: Improving and expanding project documentation to help users and developers.
  • Testing: Assisting with testing and quality assurance to ensure robustness.

Developers:

Suggestions:

We welcome feedback and feature requests to enhance Swichy. If you have ideas for improvements, feel free to:

  • Open an issue on our GitHub repository.
  • Discuss potential features in our community discussions (if available).
  • Contribute directly by submitting a pull request with your proposed changes.

Your input helps shape the future of Swichy!

About

Switchy is a command line Interface that facilitates managing the user repositories which are spread in different places on the secondary storages. Switchy comes with powerful functionalities that provides satisfaction for any git user.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published