• Project ideas
  1. Creating an initial project repository at https://gitlab.mi.hdm-stuttgart.de.

    Tip

    Include your lecturer into your team providing at least read access.

  2. Committing a Readme.md file describing the project's goals.

    This includes a precise description of the prototype's desired functionality likely to be extended along with your project's progress.

  1. Identify individual tasks like e.g.:

    • Creating sample data.

    • Setting up test scenarios.

    • Selecting a documentation tool set.

  2. Assign team members to tasks.

  1. Implementation resulting in:

    • Version controlled source code (Gitlab, Github, ...)

    • End-user deployment description / CI/CD pipeline

      See the section called “Project documentation”

    • End-user documentation.

    • Internal software documentation. (Architecture, design principles, frameworks ...)

      Tip

      Don't start documenting too late. The »Real programmers don't document, the code is obvious« myth no longer works!

  • Project ideas
    • ➟ Extending UNIX grep to databases
> grep --color  -i  fraction App.java
package de.hdm_stuttgart.mi.sd1.fraction;
 * Playing with fraction objects.
    final Fraction threeSeven = 
        new Fraction(3, 7);
    final Fraction
  • Connection profile handling

  • Search level specification:

    • Whole database

    • Table(s)

    • Table column(s)

    • Recordsets

  • Output formatting, limiting/filtering and paging

Command File ~/.dbgrep/Profiles/postgresTest.cfg
dbgrep --profile postgresTest ...
host=myserver.companynet.com
port=5432
database=main_test_data
user=testuser
password=secret
driver=Driver/postgresql-42.6.0.jar
dbgrep ... 
dbgrep ... --table User --table Stocks ...
dbgrep ... --column User.userId  ...
dbgrep ... --table Stocks --column User.userId ... 
dbgrep ... --equal 237 
dbgrep ... --greater 4.43 
dbgrep ... --like 'Smit%' 
dbgrep ... --like 'Smit%' --and --greater 4 
dbgrep ... --range [-3:17] 

Search for integer values equal to 237. Return either of:

  • All records from all tables containing an integer type value of 237.

  • A list of all tables among with column names of integer type containing at least one value of 237 but not the records themselves. This resembles the grep -l ... aka --files-with-matches argument.

Search for numeric values being greater than 4.43.

Texts starting with Smit.

Conjunction: Records containing text starting with Smit and at least one numerical value being greater than 4.

Search for integer values between and including -3 and 17.