Due F 2022-12-23 08:00

Estimated time required: <=30min

Imagine:

Your team has been contracted to showcase your company’s proficiency with frontend frameworks and RESTful APIs. You have secured creative freedom of expression, constrained only by the bounds of scholarly discourse and these terms, upon which you have agreed:

  • Flask will serve as your web microframework.
  • Multiple supporting Python3 files will be used as necessary.
  • Bootstrap or Foundation will be used as your front-end framework.
  • You will provide your own customized CSS where appropriate/necessary.
  • You will make meaningful use (sum > parts) of at least three (3) REST APIs, chosen from Ye Olde SoftDev API KB.


Your website will incorporate a few distinct components, so it is imperative that your team develop a design and agree upon roles before you move to implementation. Your team’s first order of business is reaching agreement as to how your project will be organized and how you will divide work. It will be imperative you have a shared organizational model of your target. Express your plan in a design document.

(Nota bene: This is your first deliverable. All your efforts should be directed to doing this job well; do not spend time working on other aspects of the project until design docs have been developed, reviewed, revised.)

Design Document Specifications:

  • A list of program components with role of each specified. (e.g., a car engine is comprised of various components: carburetor, alternator, radiator, spark plugs, etc. Each must perform its role for the engine to do its overall job.)
  • Explanation of how each component relates to the others.
    • Component map visualizing relationships between components.
  • Database Organization (tables? Relationships b/t tables? etc.)
  • Site map for front end
    • Represent each page you envision for your site.
    • Show linkages conveying all possilbe pathways for a user traversing site.
  • A breakdown of the different tasks required to complete this project
    • Include assignments of each task to each group member
  • Clearly labeled section delineating APIs you will use.
  • Clearly labeled section noting which front-end framework you will use and why/how. (E.g., Which of its features will you make integral use of?)
  • Append this line to your heading: Target ship date: {2022-mm-dd}
  • Amalgamate these components into a single PDF, store in designated location.


Project Guidelines:

  • Flask will serve as your web server/delivery framework.
  • SQLite3 will serve as your backend data storage system.
  • At minimum, your database component will facilitate user accounts.
  • Multiple Python files should be used, as necessary, for application layer. (a.k.a. “middleware” modules, etc.)
  • FEF: Bootstrap or Foundation.
  • CSS: Write as much as you like. If you must copy existing CSS, cite your source
  • RESTful APIs:
    • At least 3.
    • Get creative, think boldly: 1+1+1+1 -> 7!
  • Platinum Rule: THOUST APP SHALT NOT FAIL.

` ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ `

You will need a DEVLOG for this project.

  • Devlog allows any group member at any time to see the current state of the project.
  • PM will make sure devlog is being maintained, but will not make all entries.
  • The devlog should be a plain text file, stored in the specified location.
  • When any team member stops working and pushes changes to github, they should update the devlog explaining what changes have been made. Include errors/bugs discovered (or created).
  • Separate devlog entries with a newline.
  • Most recent entry at the bottom.
  • Each entry should begin with the following format: firstL -- TIMESTAMP\n ( e.g.: topherM -- 1999-12-31 23:59 )

` ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ `

FINAL DELIVERABLES (watch this section for updates):

  • hardcopy:
    • final version of design doc (x1)
    • staple because it indicates “you have it together”
  • repo structure:
    app/
      __init__.py
      static/
          css/
          js/
      templates/
      keys/
          readme
          key_<api-name>.txt
          key_<api-name>.txt
          key_<api-name>.txt
    design.pdf
    devlog.txt
    flag.jpg
    README.md
    requirements.txt
    
  • README.md
    • Clearly visible at top: <Project Name> by <Team Name>
    • Roster with roles
    • Description of website/app (a la abstract of a scientific paper… NOT your entire design doc!)
    • Link to card in our API KB for each API used.
    • Launch codes:
      • How to clone/install.
      • How to run.
  • design.pdf
    • Latest/current version of your design document.
    • Revisions since v0 noted/explained in devlog.
  • requirements.txt
    • It will list flask as well as any other pip installs your app requires.
    • Latest version of all packages.
    • Clearance must be sought and granted for any modules/libraries not explicitly covered in class.

` ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ `

Subgoals / Checkpoint Deliverables:

  1. M 2022-12-05 08:00
    • Readme with heading.
    • Team flag in specified location.
    • Team registered via googform.
    • submodule linked in Repo of Holding
  2. T 2022-12-06 08:00
    • Design doc in specified location.
    • DD hardcopy x 3 (beginning of class)
  3. W 2022-12-07 08:00
    • Revised design doc. (electronic)
    • Revised design doc. (hardcopy, 1x)
    • Devlog updated with summary of fdbk, delineation and nature of DD revisions
  4. R 2022-12-08 08:00
    • requirements.txt in place
    • summary/pitch on readme
    • launch codes in place
    • working app
  5. W 2022-12-14 08:00
    • API key storage and loading mechanism in place
  6. M 2022-12-19 08:00
    • Each PM sends email to instructor with subject softdev P1 keys :: {TNPG}, with properly named key files attached, with all teammates CC’ed. These keys will power your demo.
  7. F 2022-12-23 17:00
    • Each Devo: Fill out googform
    • Each Devo: Visit as many p0 repos as you have the appetite for. Open at least 1 issue on at least one of them, to issue compliment(s) or highlight a specific avenue of improvement.
    • PMs only: Fill out googform