"Freestyle" Project - Implementation (TECH 2335 Version)
Learning Objectives
Create a tool to address user needs and solve a business problem.
Practice implementing software according to a plan.
Practice investigating and leveraging third-party services and Python packages to speed development and enhance capabilities.
Instructions
After defining the requirements and objectives of your proposed solution, and after investigating its technical feasibility, it's time to write (or continue writing) Python code to implement some or all of the application's desired functionality.
The implementation should adhere to the requirements below.
Documentation Requirements
Your project repository should contain a "README.md" file. The README file should provide instructions to help someone else install, setup, run, and test your program. This includes:
instructions for creating and activating a virtual environment, most likely using Anaconda
instructions for installing package dependencies, most likely using Pip
instructions for obtaining and setting environment variables, as necessary
As you document for your application, strive to make it as easy as possible for someone else (or even your future self) to install it, use it, and understand what it is about.
Also, your codebase should be reasonably documented with comments as necessary, to help others (and your future self) understand the code.
Dev Process Requirements
Iteratively develop your project using version control practices. Save new versions of your source code as you reach key milestones.
If working in a group, each group member should make significant contributions to the application's source code!
Security Requirements
If your program requires sensitive information like secret passwords, API keys, or other credentials, those secret values should absolutely not be included in the source code or its revision history. Use environment variables in conjunction with a ".env" file and a ".gitignore" file to hide secret credentials from version control. If you need help, consult the dotenv
package notes.
Quality Requirements
Scan your application's codebase for duplication of terms, and refactor (using custom functions as necessary) to simplify the code and make it easier to maintain.
Optionally integrate your GitHub repository with a service like Code Climate to provide automated code quality checks.
Licensing Requirements
Choose a software license, and include a corresponding file called "LICENSE" or "LICENSE.md" in the root directory of your repository. If you need help choosing a license, see the software licensing notes.
Submission Instructions
Submit the designated Google Form before the designated date, providing the URL to your GitHub repository, and any others (like a web application URL) as desired.
Evaluation
Project implementations will be evaluated according to the requirements set forth above, as summarized by the rubric below:
Category
Requirement
Weight
Uniqueness and Individuality
Exhibits creativity, and a unique set of functionality
20%
User Experience
Provides a simple, pleasant, and intuitive experience for the user, with clear usage instructions, and free of idiosyncrasies or errors
15%
Documentation
Contains a comprehensive and well-formatted README file
20%
Licensing
Contains an appropriate LICENSE file
5%
Security
Excludes sensitive information and credentials; protects user data as necessary
15%
Quality
Simplified to remove or minimize code duplication
5%
Dev Process
Submitted via Git repository which reflects an incremental revision history and contributions from all team members
20%
This rubric is tentative, and may be subject to slight adjustments during the grading process.
Last updated