Skip to content
Jessica Nono
Jessica Nono

How to start a new software project

Posted on February 6, 2026February 6, 2026 By jessica

Let’s take a Flutter project example and build it like a professional team would: clean repo, clean workflow, and zero secret leaks.

When you start a project alone, it’s easy to code first and organize later. In a company, it’s the opposite: you set the structure first, so collaboration doesn’t become chaos when the project grows.


1) Create your Flutter project (clean start)

Start simple. One clean folder.

flutter create mboacook
cd mboacook

At this stage, your project is not “professional” yet. It’s just Flutter scaffolding. Now we make it production-ready.

2) Add Git repository (your project history starts here)

In big teams, Git is not optional. It’s your audit trail, your rollback button, your collaboration engine.

git init
git add .
git commit -m "chore: initial flutter scaffold"

Now your project has a history. Next: protect it.

3) Add Git hooks (your “security gate” for commits and merges)

Git hooks are scripts that run automatically before commit, before push, or before merge.
In companies, hooks are used to stop bad code before it leaves your laptop.

Examples of what hooks can enforce:

  • commit message format (no “final_final2” commits)
  • run tests automatically
  • prevent secrets from being committed
  • run formatter and linter

Why hooks matter:
Because once bad code enters main, everybody suffers.

4) Stop leaking secrets: git-secrets + .gitignore (they solve different problems)

git-secrets: blocks patterns

git-secrets doesn’t automatically block .env by filename.
It blocks content that looks like secrets (tokens, private keys, passwords, etc.).

This is great when someone accidentally commits:

API_KEY=sk_live_123456

.gitignore: blocks files

.gitignore prevents .env (and similar files) from being tracked at all.

Add this to .gitignore:

.env
.env.*

Important truth

  • .gitignore prevents tracking
  • git-secrets prevents committing secret content
  • Professional teams use both

5) Working with others: professional Git workflows

In a large company, you never work directly on main.
Because main should always be deployable.

There are two classic strategies:

A) GitFlow (structured + strict)

Common in places with strict release cycles like banking or enterprise software.

Branches look like this:

  • main → production
  • develop → integration branch
  • feature/* → your work

Example

feature/login-screen → develop → main

✅ Good when:

  • release dates are fixed
  • you need stable integration before production

❌ Can be slower because of too many long-lived branches.

B) Trunk-Based Development (fast + modern)

Common in fast tech environments (Google/Meta style).

  • Everyone works on short-lived branches
  • You merge into main quickly (daily or multiple times per day)
  • You rely heavily on automated tests and CI

✅ Good when:

  • you ship often
  • you want faster iteration

❌ Requires strong automated testing discipline.

6) The Pull Request (PR) lifecycle (how “done” is defined in companies)

In big companies, your work is not done when it runs on your laptop.
It’s done when the team approves it.

Here’s the standard PR flow:

Step 1 — Create a branch

Branch name usually matches a ticket.

git checkout -b feature/JIRA-101-login-screen

Step 2 — Commit (clean message)

Use conventional commits to keep history readable.

Examples:

  • feat: add login validation
  • fix: prevent crash when recipe is empty
  • chore: update dependencies

Step 3 — Open a Pull Request

You open a PR, and seniors review it:

  • logic and architecture
  • naming
  • security and performance
  • test coverage

Step 4 — Squash and merge (keep history clean)

Instead of merging your 10 messy commits, the company squashes them into one.

Why? Because history becomes:

  • clean
  • searchable
  • easy to rollback

7) Essential “enterprise” Git commands (you must know these)

In big teams, Git is not just add/commit/push.
These commands save your life daily.

git rebase main

Instead of merging main into your branch, you replay your work on top of latest main.

✅ Why companies love it:

  • keeps history linear
  • avoids ugly “merge bubbles”
git fetch origin
git rebase origin/main

git stash

You’re in the middle of messy work but need to switch branches quickly? Stash it.

git stash
git checkout another-branch
git stash pop

git cherry-pick

You need one specific commit from another branch (like a hotfix).

git cherry-pick abc1234
git blame <file>

You want to know who wrote this line and the reason (commit message).
git blame lib/main.dart

It’s not to shame people. It’s to understand context.

git reset –hard

The emergency brake: discard local changes and match remote exactly.

git reset --hard origin/main

⚠️ Dangerous, but useful when your local state is broken.

Final “clean start” checklist for your project

When you start a Flutter project professionally, you want this:

  • Flutter project created
  • Git initialized + first commit
  • .gitignore blocks env files
  • git hooks installed (format, lint, test, secrets)
  • git-secrets installed and scanning patterns
  • workflow chosen (GitFlow or Trunk-based)
  • PR process defined (branch → commits → PR → squash merge)
  • team Git commands mastered

Share this:

  • Facebook
  • X

Like this:

Like Loading...
technologie software

Post navigation

Previous post

Related Posts

Les Femmes Noires au Cœur de l’Innovation Technologique: Lumière sur des Pionnières

Posted on September 22, 2023September 22, 2023

Le domaine de la technologie, bien que traditionnellement dominé par les hommes, connaît une transformation majeure. De plus en plus de femmes africaines et afro-descendantes tracent leur chemin dans ce secteur et s’imposent comme des figures emblématiques de l’innovation. Elles non seulement brisent les barrières de genre, mais aussi celles…

Share this:

  • Facebook
  • X

Like this:

Like Loading...
Read More

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Recent Posts

  • How to start a new software project
  • CHINA VS INDIA ECONOMIC GROWTH MODEL FOR AFRICA
  • De la Chimie à la Tech : L’Aventure de Jessica Nono (Keynote Women Techmakers)
  • Digital image: From Grayscale to Complexity Reduction (part 1)
  • Digit_Recognition with pytorch

Recent Comments

  1. jessica on Cryptomonnaies, monnaies numériques , Afrique et développement.
  2. jessica on Cryptomonnaies, monnaies numériques , Afrique et développement.
  3. Tchapga Roosevelt on Cryptomonnaies, monnaies numériques , Afrique et développement.
  4. Guy DJAMEGO on Cryptomonnaies, monnaies numériques , Afrique et développement.
  5. jessica on Web3 HTTP Providers

Archives

  • February 2026
  • April 2024
  • March 2024
  • February 2024
  • September 2023
  • June 2023
  • May 2022
  • February 2022

Categories

  • africa
  • afrique
  • Blockchain
  • cameroun
  • computer vision
  • Cryptomonnaies
  • deep learning
  • digitalisation
  • Ethereum
  • femmes
  • python
  • technologie
  • Uncategorized
  • Web3
  • Twitter
©2026 Jessica Nono | WordPress Theme by SuperbThemes
%d