The Gateway to Collaborative Coding
A GitHub repository is the digital home for your project. It's where your code lives, evolves, and collaborates with other developers. Creating your first repository is a significant milestone in your development journey—it's the moment your code becomes part of the larger programming ecosystem.
Think of a GitHub repository as a project workspace that includes not just your code, but also its complete history, documentation, and collaborative tools. It's akin to an artist's studio where every brushstroke is recorded, every iteration is saved, and multiple artists can contribute to the canvas.
Whether you're building a personal project, contributing to open source, or working in a development team, the skills you'll learn today will form the foundation of your collaborative coding practices. By the end of this session, you'll have created your first GitHub repository and understood the key concepts that will enable you to work effectively with version control in your future projects.
Setting Up Your GitHub Account
Creating a GitHub Account
Before creating a repository, you need a GitHub account. If you already have one, you can skip to the next section.
- Visit GitHub: Go to github.com
- Sign up: Click the "Sign up" button and follow these steps:
- Enter your email address
- Create a password (use a strong, unique password)
- Choose a username (this will be part of your repository URLs, so choose wisely)
- Complete the verification puzzle
- Click "Create account"
- Verify your email: Check your inbox for a verification email from GitHub and click the verification link
- Complete profile: Add a profile picture and basic information
Choosing a Good GitHub Username
Your GitHub username is an important part of your professional identity as a developer. Consider these tips when selecting a username:
- Professional: Use a name you'd be comfortable sharing with employers
- Recognizable: Ideally, it should be connected to your real name or consistent with your usernames on other platforms
- Future-proof: Avoid trendy references that might feel dated in a few years
- Concise: Shorter names are easier to remember and type
- Unique: Distinguish yourself from others
Remember that your GitHub profile will likely become part of your professional portfolio, so choose a username that represents you well.
Setting Up Two-Factor Authentication (2FA)
Securing your GitHub account is crucial, especially as your repositories become more valuable. Two-factor authentication adds an extra layer of security beyond just your password.
- Go to Settings: Click your profile picture in the top-right corner and select "Settings"
- Find Security Options: In the left sidebar, click "Password and authentication"
- Enable 2FA: Click "Enable two-factor authentication"
- Choose a Method:
- Authenticator app (recommended): Use apps like Google Authenticator, Authy, or Microsoft Authenticator
- SMS authentication: Receive codes via text message (less secure but better than no 2FA)
- Save Recovery Codes: Store the provided recovery codes in a secure place
Two-factor authentication protects your code and contributions from unauthorized access. As you build more repositories and contribute to more projects, this security becomes increasingly important.
Planning Your Repository
Types of GitHub Repositories
Before creating a repository, it's helpful to understand the different types of repositories you might create:
- Personal Projects: Individual coding projects, experiments, or portfolio pieces
- Open Source Contributions: Projects you want others to use, modify, and contribute to
- Team Collaboration: Private or public repositories for working with teammates
- Learning and Practice: Repositories for tutorials, courses, or practicing new skills
- Documentation: Repositories primarily focused on guides, wikis, or educational content
The purpose of your repository will influence how you structure it, what documentation you include, and which settings you choose.
Public vs. Private Repositories
GitHub offers both public and private repositories, each with its own advantages:
| Public Repositories | Private Repositories |
|---|---|
| Visible to everyone on the internet | Visible only to you and collaborators you invite |
| Great for open-source projects | Suitable for proprietary code or personal experiments |
| Showcases your work to potential employers | Keeps sensitive projects confidential |
| Enables collaboration with the wider community | Limits collaboration to specific team members |
| Free for unlimited repositories | Free for unlimited repositories (with limitations on features for free accounts) |
For learning purposes or personal projects you're proud of, public repositories are often the best choice. They allow others to see your work and potentially contribute, while helping you build a visible portfolio of your coding skills.
Repository Naming Conventions
A good repository name is clear, descriptive, and follows conventions that make it easy to understand. Consider these guidelines:
- Be descriptive: The name should indicate what the repository contains (e.g., "python-web-scraper" is better than "project1")
- Use lowercase: Avoid capital letters to prevent confusion with case-sensitive systems
- Use hyphens instead of spaces: Spaces in URLs get encoded as "%20", which is less readable (e.g., "machine-learning-examples")
- Keep it concise: Aim for short but descriptive names
- Be consistent: If you have multiple related repositories, use a consistent naming pattern
Example naming patterns for different types of repositories:
- Project repositories: "project-name"
- Libraries/packages: "library-name"
- Personal website: "username.github.io" (special format for GitHub Pages)
- Course work: "course-name-project"
- Documentation: "project-docs" or "project-wiki"
For this course, you might consider a name like "python-fullstack-portfolio" for a repository that will showcase your progress and projects.
Creating Your First Repository
Step-by-Step Repository Creation
Now that you've planned your repository, let's create it on GitHub:
- Sign in to GitHub: Log in to your GitHub account at github.com
- Start the creation process: Click the "+" icon in the top-right corner of the page and select "New repository" from the dropdown menu
- Fill in repository details:
- Repository name: Enter a name following the conventions discussed earlier
- Description: Add a short, clear description of your repository (this will appear on your repository's page)
- Visibility: Choose between Public or Private
- Initialize repository options:
- Add a README file: Check this box to create an initial README.md file (highly recommended)
- Add .gitignore: Select a template based on your project type (e.g., Python)
- Choose a license: Select an appropriate license for your project
- Create repository: Click the "Create repository" button at the bottom of the page
Congratulations! You've just created your first GitHub repository. You'll be redirected to your new repository's page, which includes the README.md file and other files you chose to initialize with.
Understanding Repository Initialization Options
Let's look more closely at the initialization options and why they're important:
README File
The README.md file is typically the first thing people see when they visit your repository. It serves as the welcome page and should explain:
- What your project does
- How to install and use it
- How to contribute (if it's a collaborative project)
- Any other important information about your project
The .md extension stands for Markdown, a lightweight markup language that allows you to format text with simple syntax. GitHub automatically renders Markdown files as formatted HTML on your repository page.
.gitignore File
The .gitignore file tells Git which files or directories to ignore in your project. This is useful for:
- Build artifacts and compiled code
- Dependencies that can be reinstalled
- User-specific settings files
- Operating system files (like .DS_Store on macOS)
- Environment variables and secrets
GitHub offers templates for various programming languages and frameworks. For Python projects, the template includes patterns for:
- __pycache__/ directories
- *.py[cod] files (compiled Python files)
- Virtual environment directories (venv/, ENV/)
- Distribution / packaging directories (dist/, build/)
- And many more Python-specific patterns
License File
The license defines how others can use, modify, and distribute your code. Common licenses include:
- MIT License: Very permissive, allows commercial use, modification, and distribution with minimal restrictions
- GNU General Public License (GPL): Requires that derivative works also be open source
- Apache License 2.0: Similar to MIT but with patent protections
- No License: Without a license, default copyright laws apply, and others technically can't use your code
For learning projects or personal code you want others to use, the MIT License is often a good choice due to its simplicity and permissiveness.
Exploring Your New Repository
After creating your repository, take some time to explore its interface:
- Code tab: Shows your files and their contents
- Issues tab: For tracking tasks, enhancements, and bugs
- Pull requests tab: For reviewing code changes before merging
- Actions tab: For setting up automated workflows
- Projects tab: For managing project boards
- Wiki tab: For extended documentation
- Security tab: For security settings and alerts
- Insights tab: For analytics about your repository
- Settings tab: For repository configuration
This interface provides all the tools you need to manage your code, collaborate with others, and maintain your project over time.
Editing and Managing Your Repository
Editing Files Directly on GitHub
GitHub allows you to create, edit, and delete files directly through the web interface, which is useful for quick changes or when you don't have access to your local development environment.
Editing the README.md
- Navigate to the file: Click on the README.md file in your repository's file list
- Enter edit mode: Click the pencil icon (Edit this file) in the upper right corner of the file view
- Make changes: Edit the content using Markdown syntax
- Preview changes: Click the "Preview" tab to see how your changes will look
- Commit changes: Scroll down to the "Commit changes" section
- Add a commit message describing your changes
- Optionally, add an extended description
- Choose whether to commit directly to the main branch or create a new branch and pull request
- Click "Commit changes"
Creating a New File
- Navigate to your repository: Go to the main page of your repository
- Click "Add file": Use the "Add file" dropdown and select "Create new file"
- Name your file: Enter a filename with appropriate extension (e.g., "hello.py")
- Add content: Type or paste the file content
- Commit the new file: Follow the same commit process as when editing
Uploading Files
- Navigate to your repository: Go to the main page of your repository
- Click "Add file": Use the "Add file" dropdown and select "Upload files"
- Select files: Drag and drop files or use the file chooser
- Commit uploaded files: Add a commit message and commit the changes
Creating a Meaningful README
A well-crafted README is essential for any repository. Here's a template for a good README structure:
# Project Name
A brief description of what this project does and who it's for.
## Features
- Feature 1: Description
- Feature 2: Description
- Feature 3: Description
## Installation
```bash
# Example installation commands
pip install package-name
```
## Usage
```python
# Example code showing how to use your project
from package import function
function()
```
## Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
## License
[MIT](https://choosealicense.com/licenses/mit/)
For this course, you might start with a README that includes:
- Your name and a brief bio
- What you're learning in this course
- Your goals for the course
- A list of projects you plan to include in this repository
Using Markdown Effectively
Markdown is a simple markup language that allows you to format text without HTML. Here are some common Markdown syntaxes:
# Heading 1
## Heading 2
### Heading 3
**Bold text**
*Italic text*
- Bullet point
- Another bullet point
- Nested bullet point
1. Numbered item
2. Another numbered item
[Link text](https://www.example.com)

`Inline code`
```python
# Code block
def hello_world():
print("Hello, World!")
```
> Blockquote
| Table | Header |
|-------|--------|
| Cell | Cell |
| Cell | Cell |
Using Markdown effectively makes your documentation more readable and professional-looking. GitHub's editor includes a toolbar with Markdown formatting options to help you get started.
Repository Settings
Your repository has various settings that control its behavior and appearance. To access these:
- Navigate to your repository
- Click the "Settings" tab near the top of the page
Key settings to be aware of include:
- Repository name: You can rename your repository if needed
- Description and topics: Helps others find and understand your repository
- Features: Enable or disable Wikis, Issues, Projects, etc.
- GitHub Pages: Host a website directly from your repository
- Branch protection rules: Control who can push to specific branches
- Collaborators: Add other GitHub users who can contribute to your repository
For your first repository, the default settings are usually appropriate, but it's good to know where these options are for future projects.
Connecting Your Local Development Environment
Cloning Your Repository Locally
While GitHub's web interface is useful for simple edits, most development work happens on your local machine. To get a local copy of your repository:
- Navigate to your repository on GitHub
- Click the "Code" button: This opens a dropdown with clone options
- Choose a clone method:
- HTTPS: Works through firewalls, but requires you to enter your password for pushes
- SSH: More secure and allows passwordless pushing if you've set up SSH keys
- GitHub CLI: If you have the GitHub CLI installed
- Copy the URL: Click the copy button next to the URL
- Open your terminal or command prompt
- Navigate to where you want to clone the repository:
$ cd path/to/desired/directory - Clone the repository:
$ git clone https://github.com/your-username/your-repository.git - Navigate into your cloned repository:
$ cd your-repository
Now you have a local copy of your repository that you can work with using your preferred code editor and development tools.
Making Changes Locally
Once you have a local clone, you can make changes to your files using any editor or IDE. Here's the basic workflow:
- Make changes to your files: Add code, modify files, create new files, etc.
- Stage changes: Mark the changes you want to include in your commit
$ git add filename.py$ git add . - Commit changes: Create a snapshot with a descriptive message
$ git commit -m "Add user authentication function" - Push changes to GitHub: Upload your local commits to your GitHub repository
$ git push origin main
After pushing, your changes will be visible on GitHub, and your local and remote repositories will be synchronized.
Setting Up Git for the First Time
If this is your first time using Git on your computer, you'll need to configure it with your identity. This information is used to attribute your commits.
$ git config --global user.name "Your Name"
$ git config --global user.email "your.email@example.com"
Use the same email address associated with your GitHub account to ensure your commits are properly linked to your GitHub profile.
Authentication Options
There are several ways to authenticate with GitHub when pushing changes:
HTTPS with Personal Access Token
- Generate a token: Go to GitHub → Settings → Developer settings → Personal access tokens → Generate new token
- Set token scope: Select "repo" for full repository access
- Use the token: When prompted for a password during git push, enter the token instead of your account password
SSH Key Authentication (Recommended)
- Check for existing SSH keys:
$ ls -la ~/.ssh - Generate new SSH key if needed:
$ ssh-keygen -t ed25519 -C "your.email@example.com" - Add SSH key to ssh-agent:
$ eval "$(ssh-agent -s)"$ ssh-add ~/.ssh/id_ed25519 - Add SSH key to GitHub account:
- Copy the public key to clipboard:
$ cat ~/.ssh/id_ed25519.pub - Go to GitHub → Settings → SSH and GPG keys → New SSH key
- Paste your key and give it a descriptive title
- Copy the public key to clipboard:
- Test the connection:
$ ssh -T git@github.com
With SSH key authentication set up, you won't need to enter your password each time you push to GitHub.
Common Repository Patterns and Structures
Basic Python Project Structure
For Python projects, it's helpful to follow a standardized directory structure. Here's a common pattern:
project_name/
├── LICENSE
├── README.md
├── requirements.txt
├── setup.py
├── .gitignore
├── project_name/
│ ├── __init__.py
│ ├── main.py
│ └── utils.py
└── tests/
├── __init__.py
├── test_main.py
└── test_utils.py
This structure separates your actual code (in the inner project_name directory) from project metadata and tests, making it clear and organized.
Web Application Structure
For web applications (like Flask or Django projects), the structure might look like this:
web_app/
├── LICENSE
├── README.md
├── requirements.txt
├── .gitignore
├── app.py
├── config.py
├── static/
│ ├── css/
│ ├── js/
│ └── images/
├── templates/
│ ├── base.html
│ ├── home.html
│ └── about.html
└── tests/
└── test_app.py
This organization separates static assets, templates, and application code, following web development best practices.
Documentation-Focused Repository
If your repository is primarily for documentation or course notes, consider a structure like this:
course_notes/
├── README.md
├── LICENSE
├── week_1/
│ ├── lecture_notes.md
│ ├── exercises.md
│ └── resources.md
├── week_2/
│ ├── lecture_notes.md
│ ├── exercises.md
│ └── resources.md
└── projects/
├── project_1/
└── project_2/
This approach organizes content chronologically and by topic, making it easy to navigate.
Essential Files for Every Repository
Regardless of your project type, certain files should be included in almost every repository:
- README.md: Project overview, installation, and usage instructions
- LICENSE: Terms under which your code can be used
- .gitignore: Patterns for files Git should ignore
- requirements.txt or setup.py: For Python projects, dependencies information
- CONTRIBUTING.md: For collaborative projects, guidelines for contributors
- CODE_OF_CONDUCT.md: For open-source projects, community behavior guidelines
These files help others understand, use, and potentially contribute to your project.
Special Repository Types
GitHub has some special repository types with unique patterns:
GitHub Pages Personal Site
If you name a repository username.github.io, it will be published as a website at https://username.github.io.
Template Repositories
You can mark a repository as a template, allowing others to create new repositories with the same structure and files.
.github Repository
A special repository named .github can contain default files (like issue templates) that apply to all your other repositories.
Best Practices for GitHub Repositories
Documentation
- Comprehensive README: Include all necessary information for users to understand and use your project
- Code comments: Document your code with appropriate comments and docstrings
- Wikis for complex projects: Use GitHub Wikis for detailed documentation that might clutter the README
- Examples: Provide usage examples to help users get started
- Keep documentation updated: Ensure documentation reflects the current state of your project
Commit Practices
- Atomic commits: Each commit should represent a single logical change
- Descriptive commit messages: Clearly explain what the commit does and why
- Consistent commit style: Consider using conventions like the Conventional Commits format (e.g., "feat: Add login button")
- Regular commits: Commit frequently to create a detailed history and reduce the risk of losing work
- Verify before committing: Review your changes with git diff before staging and committing
Branch Management
- Main branch stability: Keep your main branch in a working state
- Feature branches: Develop new features in dedicated branches
- Delete merged branches: Clean up branches after they're merged to reduce clutter
- Clear branch names: Use descriptive names that indicate purpose (e.g., "feature/login-system")
- Protect important branches: Use branch protection rules for main/master branches
Repository Maintenance
- Keep dependencies updated: Regularly update libraries and frameworks to address security vulnerabilities
- Address issues promptly: Respond to bug reports and feature requests
- Archive inactive repositories: Archive repositories that are no longer maintained
- Use GitHub features: Take advantage of Issues, Projects, and Actions to manage your workflow
- Review and refactor: Periodically review your codebase for opportunities to improve
Security Practices
- Never commit secrets: Keep API keys, passwords, and tokens out of your repository
- Use environment variables: Store sensitive information in environment variables or secure vaults
- Enable security alerts: GitHub can notify you of vulnerabilities in your dependencies
- Review access: Periodically review who has access to your repositories
- License appropriately: Choose a license that matches your intentions for the code
Hands-On Exercise: Create Your Course Repository
Now it's time to put everything you've learned into practice by creating a repository for this course. This repository will serve as a portfolio of your work and a reference for what you've learned.
Step 1: Create a New Repository on GitHub
- Go to GitHub and sign in
- Click the "+" icon and select "New repository"
- Name your repository "python_fullstack_course"
- Add a description: "My journey learning Full Stack Python development"
- Make the repository Public
- Check "Add a README file"
- Add a .gitignore with the Python template
- Choose a license (MIT is recommended for this exercise)
- Click "Create repository"
Step 2: Enhance Your README.md
- Click on the README.md file in your repository
- Click the pencil icon to edit
- Replace the content with a more detailed introduction:
# Python Full Stack Developer Course Welcome to my learning journey as a Full Stack Python Developer! ## About Me [Introduce yourself briefly - your background, interests, and why you're taking this course] ## Course Goals By the end of this course, I aim to: - Master Python programming fundamentals - Develop web applications using Flask and Django - Understand database design and implementation - Build RESTful APIs - Create responsive front-end interfaces - Deploy applications to production environments ## Projects This repository will contain various projects completed during the course, including: 1. **Command-line To-Do Application** (Week 3) 2. **Personal Portfolio Website** (Week 4-5) 3. **Flask Web Application** (Week 6-7) 4. **RESTful API** (Week 8-9) 5. **Full Stack Application** (Week 10-14) ## Weekly Progress ### Week 1 - Introduction to version control with Git - Setting up development environments - Creating my first GitHub repository [This section will expand as I progress through the course] ## Resources This section will include helpful resources I discover throughout the course. ## Contact Feel free to reach out to me at [your-email@example.com] or connect on [LinkedIn/Twitter/etc.]. - Commit your changes with a descriptive message
Step 3: Create a Basic Directory Structure
- Click "Add file" → "Create new file"
- Name the file "week_1/notes.md" (this will automatically create the week_1 directory)
- Add content to your notes file:
# Week 1 Notes ## Git and GitHub Basics ### Key Git Commands - `git init`: Initialize a repository - `git add`: Stage changes - `git commit`: Record changes to the repository - `git status`: Check repository status - `git log`: View commit history ### Creating a GitHub Repository Steps I followed to create this repository: 1. Signed in to GitHub 2. Clicked the "+" icon and selected "New repository" 3. Named the repository "python_fullstack_course" 4. Added a description 5. Made the repository public 6. Checked "Add a README file" 7. Added a Python .gitignore template 8. Chose the MIT license 9. Clicked "Create repository" ### Reflections What I found most interesting about Git and GitHub is... What I found most challenging is... - Commit your new file
Step 4: Clone the Repository Locally
- Click the "Code" button on your repository page
- Copy the repository URL (HTTPS or SSH, depending on your setup)
- Open your terminal or command prompt
- Navigate to where you want to store the repository
- Clone the repository:
$ git clone https://github.com/your-username/python_fullstack_course.git - Navigate into the repository:
$ cd python_fullstack_course
Step 5: Add a Simple Python Script Locally
- Create a new file named "week_1/hello.py"
- Add this simple Python code:
#!/usr/bin/env python3 """ My first Python script in the Full Stack course. """ def greet(name): """ Return a personalized greeting. Args: name (str): The name to greet Returns: str: Personalized greeting """ return f"Hello, {name}! Welcome to my Python Full Stack journey." if __name__ == "__main__": import sys if len(sys.argv) > 1: name = sys.argv[1] else: name = input("Enter your name: ") print(greet(name)) print("This is my first Python script committed to GitHub!") - Stage your new file:
$ git add week_1/hello.py - Commit your changes:
$ git commit -m "Add first Python script" - Push your changes to GitHub:
$ git push origin main
Step 6: Create a .github Directory
- Create a new file named ".github/ISSUE_TEMPLATE/bug_report.md"
- Add a simple issue template:
--- name: Bug report about: Create a report to help improve the project title: '[BUG] ' labels: bug assignees: '' --- **Describe the bug** A clear and concise description of what the bug is. **To Reproduce** Steps to reproduce the behavior: 1. Go to '...' 2. Click on '....' 3. Scroll down to '....' 4. See error **Expected behavior** A clear and concise description of what you expected to happen. **Screenshots** If applicable, add screenshots to help explain your problem. **Additional context** Add any other context about the problem here. - Commit and push this file as before
Step 7: Review Your Repository
- Visit your repository on GitHub
- Explore the files and directories you've created
- Click through the commit history to see your progress
- Check how your README is displayed on the main page
Congratulations! You've created a well-structured repository for your course work, complete with documentation, organization, and your first code sample. As you progress through the course, you'll continue to add projects, notes, and code to this repository, building a comprehensive portfolio of your skills.
Additional GitHub Features Worth Exploring
GitHub Pages
GitHub Pages allows you to host websites directly from your GitHub repositories. This is perfect for project documentation, personal websites, or showcasing your portfolio.
To enable GitHub Pages:
- Go to your repository's Settings
- Scroll down to the "GitHub Pages" section
- Select a source branch (usually main) and folder (/ or /docs)
- Click Save
Your site will be published at https://username.github.io/repository-name/
GitHub Actions
GitHub Actions allow you to automate workflows directly in your GitHub repository. You can set up actions to:
- Run tests automatically when you push code
- Deploy your application when changes reach the main branch
- Publish packages to package registries
- Send notifications when certain events occur
Actions are defined in YAML files in the .github/workflows directory.
GitHub Projects
GitHub Projects help you organize and prioritize your work. You can create project boards with columns representing different stages of work (e.g., To Do, In Progress, Done) and move issues and pull requests between them.
GitHub Discussions
Discussions provide a forum-like space for questions, ideas, and conversations related to your repository. Unlike issues, which are typically focused on specific tasks or bugs, discussions are meant for broader topics and community engagement.
GitHub Codespaces
Codespaces are cloud-based development environments that allow you to code, build, test, and debug directly in your browser. They come with a web-based VS Code editor and a full development environment configured for your repository.
Key Takeaways
- GitHub repositories are more than storage: They're collaborative workspaces with tools for project management, documentation, and code reviews
- Planning before creation saves time: Thoughtfully naming and structuring your repository makes it more useful and maintainable
- README files are your project's front door: A well-written README helps others understand and use your code
- Local and remote workflows complement each other: The web interface is great for quick edits, while local development provides more power and flexibility
- Repository organization matters: Following standard patterns makes your code more accessible to others
- Documentation is essential: Clear documentation turns a personal project into a reusable resource
- GitHub provides a professional portfolio: Your repositories showcase your skills and approach to development
Creating your first GitHub repository is an important milestone in your development journey. It establishes a foundation for version control, collaboration, and showcasing your work. As you continue to build and contribute to repositories, your skills and your digital presence will grow together.
Remember that GitHub is more than just a code hosting platform—it's a community of developers sharing, collaborating, and learning together. Your repositories are your contributions to this community, whether they're personal projects, open-source contributions, or collaborative team efforts.
Assignment: Create a Personal Portfolio Repository
For this assignment, you'll create a GitHub repository to serve as your personal portfolio. This repository will showcase your skills, projects, and growth as a developer.
Requirements
- Create a new repository:
- Name: "portfolio" or "your-username.github.io" (if you want to use GitHub Pages)
- Make it public
- Initialize with a README, .gitignore (choose one appropriate for your projects), and license
- Enhance the README with:
- A professional introduction about yourself
- Your skills and technologies
- A summary of your projects (with links if they're on GitHub)
- Your educational background
- Contact information or links to your professional profiles
- Create project directories:
- Create at least 3 directories for different types of projects (e.g., "web-projects", "python-scripts", "data-analysis")
- Add a README.md file in each directory explaining what types of projects will go there
- Add a sample project:
- Choose a simple project you've already completed or create a new one
- Add it to the appropriate directory
- Include a project-specific README explaining what it does and how to use it
- Use GitHub Pages (optional):
- Enable GitHub Pages for your repository
- Create an index.html file with a simple portfolio page
- Include links to your projects
- Make at least 7 commits:
- Initial repository creation
- Enhanced README
- Directory structure
- Sample project
- Project-specific documentation
- GitHub Pages setup (if applicable)
- Final refinements
Submission
Submit the URL to your GitHub repository. Make sure it's public so it can be viewed for grading.
Evaluation Criteria
- Repository organization and structure
- Quality and completeness of documentation
- Commit quality and frequency
- Professional presentation
- Effective use of GitHub features
Bonus Challenges
- Create a custom GitHub profile README (create a repository named exactly the same as your GitHub username)
- Set up a GitHub Action for an automated task (e.g., running tests, linting code)
- Create a project board to track future portfolio enhancements
- Use a custom domain with GitHub Pages
This assignment will not only help you practice GitHub repository creation but also start building a professional portfolio that you can share with potential employers or collaborators.
Additional Resources
GitHub Documentation
Git and GitHub Tutorials
Markdown Resources
GitHub Portfolio Examples
Project Structure Guidelines
Books
- "Pro Git" by Scott Chacon and Ben Straub (free online at git-scm.com)
- "GitHub Essentials" by Achilleas Pipinellis