/Dining-tracker

Primary LanguagePythonMIT LicenseMIT

Phase 3 Project: CLI - Dining-tracker

Welcome to the end of Phase 3! This project showcases the skills acquired in this unit, ranging from Python fundamentals to building robust CLI applications.

Learning Goals

  • Configure environments with project-specific parameters using Pipenv.
  • Import and utilize external libraries.
  • Employ SQLAlchemy ORM and Alembic for database schema creation and updates.
  • Join tables through SQLAlchemy ORM using one-to-one, one-to-many, and many-to-many relationships.
  • Implement algorithms from the Data Structures and Algorithms module.
  • Adhere to best practices in CLI design.

Key Vocabulary

  • Command Line: A text-based interface built into your computer's OS for accessing files and applications.
  • Terminal (Mac OS) and Command Shell/Powershell (Windows): Applications that grant access to the command line.
  • Command-Line Interface (CLI): A text-based interface for running programs, file management, and memory object interaction. As the name suggests, it operates from the command line.

About This CLI Application

This CLI application addresses a real-world problem, showcasing the culmination of the skills developed throughout Phase 3. Here's what to expect:

  • A user-friendly CLI application.
  • A database with 3+ interrelated tables created and modified using SQLAlchemy ORM.
  • A well-structured virtual environment managed by Pipenv.
  • Proper application package structure.
  • Extensive use of Python's lists, dicts, and tuples.
  • Accurate implementation of an algorithm from the Data Structures and Algorithms module.

Instructions for Use

  1. Clone this repository.
  2. Navigate to the directory and install dependencies using Pipenv.
  3. Run the CLI application following the commands provided in the documentation.

Tips

  • Pre-plan your database schema; altering it later can be complex!
  • Keep Python objects, SQLAlchemy objects, and CLI scripts modular.
  • Don't reinvent the wheel. If stuck, look for Python libraries that might simplify the task.
  • Libraries like Click or Fire can streamline basic CLI functionalities.

Author

Abdirahman abass diis