Prepare Your GitHub Repo
If you haven't done so, one person on your team should create a new repo and share it with the team members. The provided starter templates include JavaScript (Express) and Python (Flask) implementations for a multi-user app, with Bootstrap for styling, SQLite database, and Prisma ORM. Detailed instructions cover creating a GitHub repository, adding team members as collaborators, and adopting a Wiki template are provided in Week 1 under Starter Templates. The steps for preparing your repository are reproduced here:
Creating your Repository
Step 1: Create a GitHub Repository
- Choose a Team Member to Create the Repository: One team member should create a new repository on GitHub. Go to GitHub and sign in.
- Create a New Repository: Click on the "+" icon in the upper right corner and select "New repository". Note: Alternatively, if you are going to make use of a starter template, then one team member should fork that appropriate repository using the Fork button on the appropriate GitHub repository from above and update the repository's settings as described below.
- Repository Settings:
- Name: Choose a meaningful name for your project.
- Description: Briefly describe your project.
- Visibility: Set to private.
- Initialize this repository with: Choose to add a README and .gitignore (select the appropriate language/framework). No license is necessary.
- Create Repository: Click the “Create repository” button (if you did not fork an existing repository).
Step 2: Add Team Members as Collaborators
- Access Settings: In the repository, go to “Settings”.
- Manage Access: Click on “Manage access” and then “Invite a collaborator”.
- Invite Team Members: Enter your teammates’ GitHub usernames and send the invitations.
- Invite Instructor: Enter your instructor's GitHub username providing using their GitHub username (
mhassanist
).
Get This Done Early
Completing these initial setup steps early in the project is crucial for several reasons:
-
Foundation for Collaboration: Establishing a GitHub repository and adding collaborators ensures that all team members have access to the project's codebase from the outset. This shared access is vital for collaborative development, allowing team members to simultaneously work on different parts of the project, review each other's code, and merge changes efficiently.
-
Streamlined Workflow: By setting up the project structure and workflow early, including adopting coding standards, integrating unit testing, and establishing linting and formatting guidelines, the team can avoid inconsistencies and conflicts in the codebase. This preparation helps in maintaining a clean and organized code structure, which is essential for effective teamwork and project management.
-
Early Problem Identification: Starting with a structured approach allows teams to identify and address potential issues early in the development process. Problems such as incompatible software versions, insufficient testing, or unclear coding practices are easier to resolve at the beginning rather than later in the development cycle.
-
Documentation and Tracking: Utilizing a Wiki starter template for documentation from the beginning helps in maintaining comprehensive and up-to-date project documentation. This is vital for new team members who join the project at a later stage and for keeping track of the project’s progress and decisions.
-
Time Management: By completing these foundational steps early, the team can focus on the core development work without interruption. This efficiency in the initial phase can lead to better time management throughout the project lifecycle, ensuring that deadlines are met and the project remains on schedule.
-
Early Testing and Feedback: Implementing a base for unit testing from the start encourages regular testing of the code. Early detection of bugs and feedback on features can significantly improve the quality of the final product.
-
Familiarization with Tools and Processes: Early setup allows team members to familiarize themselves with the tools (like GitHub, Prisma, SQLite) and processes (like forking, cloning, pull requests) that will be used throughout the project. This understanding is essential for smooth and efficient development work.
In summary, completing these initial steps promptly sets a strong foundation for the project, streamlines the development process, enhances collaboration, and contributes to the timely and successful completion of the project.