π‘ Even in 2026, many people still have questions about how to properly organize a GitHub repository.
Having a functional project is important, but presenting it in a clear and organized way can make a huge difference for anyone visiting your profile.
π With that in mind, I created this guide with some good practices that can help you structure your repositories.
By following these tips, your projects will become more organized, professional, and much easier for others to understand.
π₯ Tip: Choose good names for your projects. A clear and catchy name can attract more attention from people who visit your profile for the first time.
Remember: first impressions matter.
π Hi! My name is Luiz Eduardo. I'm a Software Engineering student and I use this profile to publish academic and personal projects, such as this guide.
β¨ The goal of this repository is to help others organize their projects on GitHub by encouraging good practices in documentation, organization, and code presentation.
- π About the project
- π What is a README?
- β³ Before vs After
- ποΈ Repository structure
- π·οΈ Project name
- π Project description
- βοΈ Features
- π§° Technologies
- π Project structure
- π§ͺ How to run the project
- βοΈ How it works
- π€ Contributions
- π Project status
- π License
- π€ Author
- π Conclusion
- π README icons
This repository presents a simple and practical guide with good practices for organizing your projects on GitHub.
π A README works as the showcase of your project.
It is where visitors will have their first contact with your work and quickly understand what your repository is about.
β Bad README
β’ Title
β’ Description
β’ How to run
β
Good README
β’ Title
β’ Description
β’ Summary
β’ Features
β’ Technologies
β’ Structure
β’ Execution
β’ Operation
β’ Guide
β’ Contributions
β’ License
β’ Author
1 β What is this project?
2 β What does it do?
3 β How can someone run the project?
4 β How is the code structured?
5 β How can people contribute to the project?
π§ If your README clearly answers these five questions, it is already fulfilling its role.
In the book The Pragmatic Programmer, the authors present an important idea about software development: "Programming is more than just writing code. Good developers think about the problem, the design, and the organization of the system even before they start implementing it." This means that organization and planning are also part of the development process.
β οΈ Important: The goal of this guide is to help you organize and improve the page of a repository β whether you are creating one from scratch or improving an existing one β not to teach how to build a software project from scratch.
This is the first contact users will have with your project, so it should be clear, intuitive, and easy to remember. A good practice is to use simple names in lowercase separated by hyphens, a pattern known as kebab-case, which is widely used in the development community.
Example:
- software-engineering-projects
Provide a brief explanation of what the project is and what problem it solves.
Example:
- Repository dedicated to publishing projects and activities developed during my Software Engineering degree.
List the functionalities available in the project.
You can also mention features that will be implemented in the future.
Example
- User registration
- Reservation creation
- Reservation listing
- Database integration (under development)
This section helps visitors quickly understand which tools were used in the development of the project.
Example
- C++
- Git
- PostgreSQL
Here you can show how your project is organized internally.
This helps other developers quickly understand the architecture of your code.
Example:
sistema-autenticacao/
βββ src/
β βββ main.cpp
β βββ utils.cpp
βββ docs/
β βββ authentication-guide.md
βββ modules/
β βββ authentication/
β βββ authentication.cpp
βββ database/
β βββ database.cpp
βββ config/
β βββ config.cpp
βββ tests/
βββ test_main.cpp
Explain in a simple way how anyone can run the project.
Tip: It is also important to inform the programming language version used.
Example using C++
To compile and run this project, you will need:
- Language: C++ (C++20 standard)
- Compiler: GCC 10+, Clang 10+, or MSVC 19.28+
To run the project in the terminal:
- git clone
- g++ main.cpp -o login
- ./login
In this section you can briefly explain how the system works in general.
Example
- The system runs through the terminal, where users can authenticate and configure their profile.
If the project is open source, explain how other people can contribute.
> Example
> - Contributions are welcome.
> - Feel free to open issues or submit pull requests.
> You can also recognize people who contributed to the project:
> - [Colleague name] β AI logic
> - [Your name] β project structure and C++
> - [Another contributor] β documentation and tests
Indicate the current stage of the project.
> Example:
> π§ In development
ou
> β
Completed
Here you define how others can use your project.
Example
- This project is licensed under the MIT License.
Include your name if you are the main author of the project.
Example
- Luiz Eduardo Marchi
If this guide helped you in any way, consider leaving a β on the repository.
This helps other people find the project.
π‘ Organizing a repository well may seem simple, but it can make a big difference in how your work is perceived by others.
A well-documented project demonstrates organization, attention to detail, and commitment to good development practices. It also makes the code easier to understand, encourages contributions, and makes your portfolio look much more professional.
By applying these small improvements to your repositories, your projects will not only become easier to understand but will also present a much stronger image of your work as a developer.
π§ Remember: writing code is not enough β knowing how to present and document your project is also an important skill for any developer.
Below are some useful icons that can be used to organize sections in a README.
Icons can help make documentation more visual and easier to navigate.
Below are some common examples frequently used in README files.
| Icon | Common use | Example |
|---|---|---|
| π | About the project | ## π About the project |
| π | Summary | ## π Summary |
| π | Documentation | ## π Documentation |
| π§ | Concepts or explanations | ## π§ Concepts |
| Icon | Common use | Example |
|---|---|---|
| βοΈ | System operation | ## βοΈ How it works |
| π§° | Technologies used | ## π§° Technologies |
| ποΈ | Project structure | ## ποΈ Project structure |
| π§ͺ | Tests | ## π§ͺ Tests |
| Icon | Common use | Example |
|---|---|---|
| π | Running the project | ## π How to run |
| π» | Terminal usage | ## π» Usage |
| π¦ | Installation | ## π¦ Installation |
| Icon | Common use | Example |
|---|---|---|
| π€ | Contributions | ## π€ Contributions |
| π₯ | Contributors | ## π₯ Contributors |
| π | Report bugs | ## π Bugs |
| Icon | Common use | Example |
|---|---|---|
| π | Project status | ## π Status |
| π | License | ## π License |
| π€ | Author | ## π€ Author |
| π | Conclusion | ## π Conclusion |
