Metadata-Version: 2.1
Name: dailydose
Version: 0.1.1
Summary: Boredom kills. Here's a package that gives you a daily dose of fun!
Author-email: Larry Li <zl2902@nyu.edu>, Sneheel Sarangi <ss14247@nyu.edu>, Paula Seraphim <pas580@nyu.edu>, Winston Zhang <shz231@nyu.edu>
License: GPL-3.0-only
Project-URL: Homepage, https://github.com/software-students-fall2022/python-package-exercise-project-3-team-14
Project-URL: Repository, https://github.com/software-students-fall2022/python-package-exercise-project-3-team-14.git
Project-URL: Bug Tracker, https://github.com/software-students-fall2022/python-package-exercise-project-3-team-14/issues
Keywords: dailydose
Classifier: Programming Language :: Python :: 3
Classifier: Intended Audience :: Education
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Operating System :: OS Independent
Requires-Python: >=3.7
Description-Content-Type: text/markdown
Provides-Extra: dev
License-File: LICENSE

![Python build & test](https://github.com/software-students-fall2022/python-package-exercise-project-3-team-14/actions/workflows/python-package.yml/badge.svg) [![PyPI version](https://badge.fury.io/py/dailydose.svg)](https://badge.fury.io/py/dailydose)

# Python *`dailydose`* Package

Boredom kills. Here's a package that gives you a daily dose of fun!


## Team Members
* [Sneheel Sarangi](https://github.com/Xarangi)
* [Winston Zhang](https://github.com/Midas0231)
* [Larry Li](https://github.com/86larryli)
* [Paula Seraphim](https://github.com/paulasera)


## Installation

Install the *`dailydose`* module with `pip`.


## Usage

Once installed, *`dailydose`* gives access to the package's 4 special features: today's news in different fields (per Vox Media), random fun facts, and the games of hangman and battleship. The variety of the collection is inspired by the traditional newspaper/magazine experience, in which both information and thought-provoking entertainment is regularly provided. This package is ideal for any program that operates on changing content or stimulating applications. 

*dailydose* supports a command-line interface (CLI). To choose one of the above options, simply call:

```
$ python3 -m dailydose
```

Upon running the package, a main menu is displayed in which your options are listed. Access each feature by entering their corresponding menu number.


## Fun Stuffs To Do

### Fun Facts

- To see a fun fact, press 1 when the main menu is prompted. A random fun fact from [TheFactSite](https://www.thefactsite.com/) will be printed.

- After that, you will be redirected to the main menu.

### Newsfeed

- To see today's news, press 2 when the main menu is prompted. Immediately after, you will be given a list of options to read about: Culture, Politics, Science, World, Technology, Environment, and Business. You also have the option to return to the main menu. 

- Select a field by entering the corresponding listed number. Today's top headlines in the chosen field, as published by Vox Media, as well as a link to read more are printed.

- The content is sourced from their website and therefore changes accordingly.

- Upon receiving the headlines, you will be redirected to the main menu. 

### Hangman Game

- To play the hangman game, press 3 when the main menu is prompted.

- You will then be asked to enter the length of the word you want to guess.

- Upon guessing the correct word or losing the game, you will be redirected to the main menu.

### Battleship Game

- To play the battleship game, press 4 when the main menu is prompted.

- You will then be asked to enter the board dimensions and ship size. You can also choose to use the default settings.

- The game creates a dimension*dimension size board and keeps track of how many turns it takes for you to win! What do you think is the optimal strategy?

- Upon winning or exiting the game, you will be redirected to the main menu.


## Importing the Package

For example usage of the package, see [`example.py`](https://github.com/software-students-fall2022/python-package-exercise-project-3-team-14/blob/main/example/example.py).

### 1. `fact.get` -- generate a list of random fun fact objects

```
fact.get(count=1, include_details=True)
```

Parameters

- `count`: how many non-duplicate fun fact objects to return
    - default: 1
    - possible values: [1, 100], inclusive


- `include_details`: whether to return the detailed contents of the facts or only the headings
    - default: True

### 2. `news.get_headlines` -- generate a list of headlines

```
news.get_headlines(subject, titular)
```

Parameters

- `subject`: category name in url slug format on [Vox.com](https://www.vox.com/)
    - possible values: `"culture"`, `"policy-and-politics"`, `"science-and-health"`, `"world"`, `"technology"`, `"energy-and-environment"`, `"business-and-finance"`

- `titular`: a user-friendly display name for the category name
    - possible values: any `str`

### 3. `hang.hangman` -- start an interactive hangman game

```
hang.hangman(num_letter=number_of_letters)
```

Parameters

- `num_letter`: the length of word you want to guess
    - possible values: a string make up of numbers, the length of word acceptable is in between [`"4"`, `"10"`], inclusive

### 4. `battleship.main` -- start an interactive battleship game

```
battleship.main(ship_size="4", dimension="10")
```

Parameters

- `dimension`: the size of the board (dimension * dimension)
    - default: `"10"`
    - possible values: a string make up of numbers, the board dimension acceptable is in between [`"1"`, `"10"`], inclusive

- `ship_size`: the size of the hidden battleship
    - default: `"4"`
    - possible values: a string make up of numbers, the ship size acceptable is in between [`"1"`, `dimension`], inclusive

## Contribute

### Source Code

Clone the package source code from [GitHub repository](https://github.com/software-students-fall2022/python-package-exercise-project-3-team-14).

### Setup Virtual Environment

1. Create a `pipenv`-managed virtual environment and install all required dependencies by running the following command in the main project directory where the `Pipfile` is:

```
pipenv install
```

2. Activate the virtual environment: 

```
pipenv shell
```

3. Then you can test and modify the package!

### Test the Package

1. Run the tests from the main project directory:

```
python3 -m pytest
```

### Build the Package

1. Delete the autogenerated `dist` directory if it exists.

2. Delete the autogenerated `src/*.egg-info` directory if it exists.

3. Build the package by running the following command in the main project directory:

```
python3 -m build
```
