Project Work Submission

Submission is via GitHub and an email to tell me where to find things! Submission date: 11.59pm Tuesday 3rd May 2022.

Requirements for the submission

You must submit the following information by email to:

Only code on the master branch of your GitHub repository will be considered!

I have provided a skeleton GitHub repository at github.com/AndrewCRMartin/biocomp2/ with a suggested layout for your code. You do not have to follow exactly this layout, but you are expected to do the following:

NOTE: If you use a word processor for the documentation and/or commentary, you MUST also supply your documents as a PDF file.

Suggested submission

The provided skeleton directory is laid out as follows:

biocomp2/                    (Top directory)
|-- cgi-biocomp2             (All CGI scripts and layers under here)
|   |
|   |-- bl                   (The business logic layer)
|   |   |-- blapi.py         (The API imported by the CGI scripts)
|   |   |-- docs             (Documentation for the API plus your essay)
|   |   |   \-- README.md    
|   |   |
|   |   \-- README.md        (A brief description of the contents of this directory)
|   |
|   |-- cgi                  (The front end CGI script)
|   |   |-- docs             (Documentation for the CGI script plus your essay)
|   |   |   \-- README.md
|   |   |-- htmlutils.py     (CGI code - imports ../bl/blapi.py)
|   |   |-- listall.py       (CGI code - imports ../bl/blapi.py)
|   |   \-- README.md        (A brief description of the contents of this directory)
|   |
|   |-- config.py            (Configuration file used by all python scripts)
|   |
|   |-- db                   (The database access layer)
|   |   |-- dbapi.py         (The API imported by the business layer)
|   |   |-- docs             (Documentation for the database plus your essay)
|   |   |   \-- README.md
|   |   |
|   |   \-- README.md        (A brief description of the contents of this directory)
|   |
|   \-- README.md            (A brief description of the overall structure)
|
|-- createdb                 (Code to populate the database)
|   |-- docs                 (Documentation on how to run the code)
|   |   \-- README.md
|   |
|   \-- README.md            (A brief description of the contents of this directory)
|
|-- html                     (HTML for the main page)
|   |-- css                  (CSS used by the pages and CGI scripts)
|   |   \-- biocomp2.css
|   |
|   |-- index.html
|   \-- README.md            (A brief description of the contents of this directory)
|
|-- install.sh               (Ideally a script to install everything)
\-- README.md                (An overall description of the project)

Reflective Essay (2-5 pages)

  1. Explain how you set about the project detailing:
    1. how you interacted with the other members of the group
    2. how you (as a group) came up with the requirements for the overall project
    3. how you (as an individual) came up with the requirements for your contribution
  2. How well did the development cycle work within the group?
  3. You should document the development process - what stages did you go through and what steps did you take? Did you go through several iterations or did you spend a long time in design and then a relatively short development stage?
  4. What strategies (if any) did you take for testing your code - particularly if other people's code wasn't ready?
  5. Are there any known issues or bugs, or anything that doesn't work as specified?
  6. You should discuss what worked well and what could have worked better - both with your code and the group interaction. Were there any particular problems? Conversely were there any solutions or ideas that you were particularly proud of?
  7. Were there alternative strategies you could have used? (Either for the project design or implementation)
  8. What do you think you gained out of the project? How has this experience helped you? What experience or insights have you gained?

Consequently I suggest headings of the form:

  1. Approach to the project
    1. Interaction with the team
    2. Overall project requirements
    3. Requirements for my contribution
  2. Performance of the development cycle
  3. The development process
  4. Code testing
  5. Known issues
  6. What worked and what didn't - problems and solutions
  7. Alternative strategies
  8. Personal insights

Code documentation (1-2 pages per tier)

Note that this should not simply be a re-printing of the code with the comments in bold (or something similar).

In general:

For specific layers, the documentation should:

Marking criteria

In general we will be taking a loose, "holistic" approach to marking so we are able to give credit where it has been earned rather than penalizing people for not doing enough in one area. You are expected to stretch yourselves!

However, criteria will include:

You should download some general guidance on what is expected. See the Good Code section for further help.

Continue