Code Monkey home page Code Monkey logo

python-thursday-adventure-2's Introduction

Python Thursday Logo

Welcome to the Python Thursday Adventure v2!

The sequel to the 2015 favorite, Python Thursday Adventure.

This is the project for the CodeNewbie Python Thursday group. You can join the group on Slack. To get started, read the following, and if you get stuck, reach out to Jamal (github: @jamalhansen, slack: @jamal) the host.

Build Status

About this project

To start out, we are building a command line game to help us develop our Python skills (and review OOP principles). We meet weekly on Slack in the "python-thursday" channel on Thursday at 9PM EST, so mark your calendars and stop by! There, we'll review the project, look at code together, and share what we learned.

In particular, we hope to:

  • collaborate and learn together
  • turn feature requirements into actual product features!
  • get code reviewed by community members
  • get experience working on a real app in a collaborative, real-world setting

Getting Started

Tech requirements

You'll need to have installed Python 3 to begin. The TL;DR instructions: head to python.org, download and install the latest 3.x.x version for your operating system. For more detailed instructions, links are provided below.

Note: For Windows users, there is the extra step of setting your PATH variable. You can either do it from the GUI interface of the Windows installer from Python.org (recommended!), or using the command line (instructions).

How to contribute

We use pull requests so you can get your code reviewed by others before merging it into the project. Code reviews are a great way to learn and collaborate. Here's how the process works:

  1. Join our Slack community and tell your host @jamal you want to join the project repo
  2. The host will invite you to join as a collaborator. You MUST be a collaborator to join the project and pick up features.
  3. Accept invite from Github to join as a collaborator.
  • Look through the issues list and pick a feature you want to work on.
  • Assign that feature to yourself.
  • Clone this repo.
  • Make a feature branch for the issue you're working on. The first part of the branch name should be your initials, like this: sy-allows-users-to-update-avatar
  • Push your branch to origin.
  • When your feature is done and ready to be reviewed, make pull request.
  • Copy and paste your pull request link to the #python-thursday Slack channel for review.
  • Once you get some feedback on your pull request and a final thumbs up from a community member, merge to master & close the branch.

Quick Start Guide

Once you have install Python 3 and have joined CodeNewbie Python Thursday you will need to do a little more setup to get the project up and running on your system. This setup will be done on the command line so open up a terminal and get started.

Clone the source to your computer

Copy the code from github to your pc with the clone command. The following example assumes that you have ssh setup with your github account.

git clone [email protected]:code-newbies/python-thursday-adventure-2.git pta2

If you do not want to use SSH you can use the following command instead

git clone https://github.com/code-newbies/python-thursday-adventure-2.git pta2

Once the repo is cloned, move into the closed repository with the following

cd pta2

Setup a virtual environment

Next you will probably want to setup a virtual environment for Python 3. This is not absolutely necessary but it can help to make using Python 3 and this project more straightforward.

You can create a virtual Python environment using Python 3 with the following command.

python -m venv pta2env

Note: If your Python uses the command python3 (looking at you, Mac and Linux), use python3 -m venv pta2env.

The above command makes a virtual environment named pta2env. When you want to exit this environment use the command deactivate. When you want to work on the environment again use source pta2env/bin/activate. For Windows uses, working on the environment will require you to type pta2env\Scripts\activate.

Install the requirements for the project

The final step to setup the project is to install the required modules. These are stored in the file requirements.txt and can be installed with pip using the following command.

pip install -r requirements.txt

Starting an issue

When you are ready to start working on an issue you will want to create a feature branch. This is done with the following command:

git checkout -b <branch name>

where <branch name> is your initals and a short description of your issue. For instance jh-fixes-flux-capacitor

Come to Python Thursday!

Join us at 9PM EST on Thursday to review code and talk about the project. Come with questions, code to show, and be ready to share what you're learning!

Community rules & guidelines

The purpose of this project is to learn by working on a real-world application. Use the code reviews as a place to ask questions, offer suggestions, and share your thoughts. When giving feedback, particularly on code reviews, please remember our community rules: be nice, be honest, be supportive. We're all learning, so let's make sure to be kind to one another.

For more details, see our full Code of Conduct. We're excited to learn with you :)

Dependencies

Dependencies are managed for this project with pip. Basic proceedures for installing and saving dependencies is below, additional information can be found in the pip documentation.

Installing

The dependencies for this project are stored in the file requirements.txt. To install these dependencies into your environment use the command below.

pip install -r requirements.txt

Saving

If you have added new dependencies to the project, please add them to the requirements.txt file. You can do this with pip freeze > requirements.txt which will save your current requirements to the requirements.txt file.

Testing

Test setup

Before running tests you will need to use pip to install the Python Adventure in editable mode. You can do this by typing the following from the root directory of the project pip install -e .

Running unit tests

Running unit tests can be achieved by running pytest from the command line and passing it the location of the tests to run. This can be done with the following command run from the root folder of the project python -m pytest test/

Running your tests should looks something similar to this:

Pytest example

Additional Resources

Below are some additonal links and resources that you may find helpful.

Git and Github

You'll also need a Github account and some knowledge of git. If you're not comfortable using git, that's perfectly fine! Start by looking at the following resources:

  • Github For Beginners: Don't Get Scared, Get Started An incredibly newbie-friendly introduction to the world of git and Github. Written by a non-developer, it's a great introduction to many of the common terms and concepts.

  • Github For Beginners: Commit, Push and Go Part two of the above article, this post takes you through setting up a git repo and performing common commands in your repo. Open up your terminal and follow along to get the most out of this post.

  • Try Git This course from Code School lets you try git from the browser. It's an easy way to practice the commands you'll use for the Python Thursday project.

  • Feature Branch Workflow We'll be using the Feature Branch Workflow for these projects. This is a great blog post filled with awesome diagrams that show you how it works. Once you've familiarized yourself with git and Github, read through this to see how we'll use it in this collaborative setting.

  • Have more git questions? If you've gone through the material above and want to walk through git concepts with a real person, contact the CodeNewbies at Python Thursday and we'd be happy to setup some time to do it together.

Python

You're welcome to start contributing at any level, but it's helpful to have some knowledge of Python. To get you started, go through one of the following tutorials first.

Once you're done, come back and get your code on!

There's a big gap between the knowledge you gain when you go through the tutorials, and the skills you need to be job ready. We hope to help fill that gap by working on collaborative projects like this. So if you're tired of doing tutorials and you're looking for some real-world experience, this is for you.

python-thursday-adventure-2's People

Contributors

degustaf avatar jamalhansen avatar kennethlove avatar sgregg85 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

python-thursday-adventure-2's Issues

Create a location class

The location will contain some type of story contents and options for the player's actions.

Write a story outline

The adventure is yours to shape. Make a unique, ambitious and exciting plot outline. Or a bacon centric plot outline. your choice.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.