Project Title: Travel Cost Calculator

Welcome to the Travel Cost Calculator project. This project aims to calculate the total cost of travel considering flight costs, hotel rates and currency exchange rates. It is designed to help you understand code quality, programming standards, design principles, and language syntax in Python and Java.

Table of Contents

  1. Project Structure
  2. Expectations
  3. Getting Started
  4. Working on the Code
  5. Submission
  6. Evaluation
  7. License

Project Structure

Here is what the current project repository contains:

  1. The main script travel_cost_calculator.py (for Python) and TravelCostCalculator.java (for Java), which calculates the total travel cost.
  2. These scripts read data stored in various CSV files like hotel_rates.csv, exchange_rates.csv, and flight_costs.csv located in the data folder.

Expectations

  1. Code Quality: Your code should be easy to read, properly indented, have informative variable names and insightful comments. Follow the PEP8 style guide for Python and Oracle Java Code Conventions for Java.
  2. Code Efficiency: The code should avoid redundancy and perform the calculations in the most efficient way possible.
  3. Error Handling: The program should robustly handle potential errors such as missing data or invalid input.
  4. 'Code Smells' Resolution: Find and eliminate potential code smells, which are symptoms in the code that could indicate a deeper problem.

Getting Started

To run this project on a GitHub code space, instructions are already provided. If you wish to run this project locally, follow the instructions below.

Prerequisites

You must have either Python or Java JDK installed. You can download Python from here and Java JDK from here.

Running the program

For Python

python travel_cost_calculator.py

For Java

javac TravelCostCalculator.java
java TravelCostCalculator

Working on the Code

If you do the assignment on Github code space, follow instructions we've given before, push your changes and create the PR.

If you do the project locally, we would recommend you to compress the source folder, rename it with your index number and upload it to LMS.

Evaluation

Your task will be evaluated on the following parameters:

  1. Quality of code.
  2. Effectiveness of improvements.
  3. Code standard compliance.
  4. Clarity and usefulness of comments.

License

This project is licensed under the MIT License. Refer to LICENSE.md for more details.

The use of this project is purely for educational purposes.

Disclaimer

The use of this project is for educational purposes. The developer of this project and all associated parties are not responsible for any damages or liabilities direct or indirect, that result from the use of this software. All information in the software, including all data, diagrams, outputs, and reports, are not guaranteed to be accurate, timely, or complete, and are provided "as is" without warranty of any kind, express or implied, including warranties of performance, merchantability, and fitness for a particular purpose.