- presentations from those who haven't presented yet
- sketches + wireframes
- CSS
- fetchAPI
- MDN async tutorial
- GitHub & Copilot?
- APIs & fetch?
- live coding?
THE plan (or at least plan B)
- weeks 9-12:
- Project 3: dynamic db app 9/14
- ex3.1 simple SI 08/28
- week 12: web582.com & dynamic website creation homepages
- *** previously on dynamic/ ***
- weeks 6-9: personal dynamic web site
- Project 3: dynamic db app 9/14
- ex3.1 simple SI 08/28
- ex3.2 app plan 09/07
- ex3.3 alpha version 09/11
- weeks 2-5: working with dynamic APIs
- ex2.1 weather API 08/03
- ex2.2 personal API (minimum viable product) 08/10
- ex2.3 Google maps API 08/14? 08/21?
- weeks 1 & 2: web582.com & dynamic website creation homepages 07/31
- ex1.1 sitemap 07/20
- ex1.2 wireframes 07/24
- ex1.3 moodboard 07/27
- dynamic in-class recordings
day 22 23 of 24
project 4 presentations: Oct. 2 & 5th. You will have until Tuesday, October 10th @8a.m. to update your apps.
- why do you put "./"?? ie.
const url = "./totalAudience.php";
- a lot missing feedback
- need to learn what we are doing in class for future classes / units
- still free to try other styles
- communicate regarding what you are doing in other classes
- learning is NOT in a silo
- everybody does 4.2 related db select!
- everybody links to the plan!
day 21 of 2 dozen
- planning is MORE important than development
- Figma: relational db
- more important than development is planning
- plan first code later
- meetings....
- Aysegul's p3. plan
- !! GitHub passwords...
- use a .gitignore file
- change your passwords
- see "history" in github
day 20 of 24
relations and links
- check out the much asked for video tutorial: relational db (13min)
- video tutorial: relational db > link table (17min)
- also added the files to GitHub Repository: relational_db
- presentations
- sorry... made videos, didn't grade your Project 3s
- select using group_concat( ) & json_object( )
- GitHub: group_concat( ) and json_object( )
day 19 / 24
- need help?
- send me a link
- describe the issues / problems
- send me a link to your GitHub so I can easily access your code
- relational db questions? review?
- !! session_start() !!
- sessions, data types, casting to int
- exercises 4.1 & 4.2
- presentations
- debugging?
- more presentations?
week 22 of 24
are we related?
logins make it more complex.
ex 4.1: project 4 description
Add a short description of your project to to your dynamic website that includes:
- project title
- description of your app
- partners & who is doing what
- how you wish to be graded
- joint evaluation
- 50% joint / 50% individual
- individual (just sharing planning, feedback, testing & debugging)
due: 09/21
ex 4.2: relational db select
Create a page that displays data from 2 related tables
Just that. 2 tables. Display data from both using primary & foreign keys in your query.
Display your query on your page.
due: 09/21
day 17 of 24
presenting... [drum roll please] ...data
- drag & drop demo
- GitHub: drag & drop demo
- drag n' drop resources
- presentations (for those who are ready) of 3.3 alpha verion
- those not ready should present Monday.
- final projects?
Project 4: relational db group project
Create an application that uses a relational database to share & gather information that helps solve a problem, provoke thought, entertain or delight. Work in a group in one of the following ways:
- together, same mark
- together with 50% same mark and 50% for your clearly defined responsibilities (i.e. front-end / back-end
- with partners for feedback & testing only
The minimum requirements include doing the following:
- display data to users
- allows users to insert data
- includes at least 1 way to manipulate or work with the data i.e.
- sort data
- filter data
- search data
- plus
- has multiple, related tables
- uses primary & foreign keys
Ideally your database should build on what we have learned in projects 1 & 2 & 3 including:
- php programming: mySQLi, prepared statements
- js coding: fetch, createElement, querySelector, addEventListener, loops, functions, objects etc
- file management & site maps
- mobile first design
- CSS grid for layout
evaluation
- content
- features: display & insert data
- design & layout
- technical (php & js coding)
- process i.e. elevator pitch, sketches, wireframes, moodboard & pseudo code (or similar)
- plus: getting & sharing feedback
due: presentations on Sept. 28 / Oct. 2
final: Oct. 5th at midnight
day 16
focus on the base... the data base
- use Fetch API !! Do NOT post & change pages.
- output json from your .php
- folder structure (only connection file should be in _includes). Other .php files go in "app" folder
- link to your Github!!
- project 4: relational db project
class 15/24
based on data
- here's a (poor?) example of an update interface for the demo db
- demo db GitHub repository
- review? questions?
- work on projects // meet with partners?
- future topics:
- image uploader demo
- regEx & .exec( )
- security for file uploads
- uploader GitHub repository
- relational databases
- db normalization
- image uploader demo
- video tutorial: initialize git repository
day 24-10 / 24
collaborating and iterating
- template / design for exercises
- 2.3 maps... so much great stuff. LOL
- tell it to the duck
- 3 maps on one page: coding implications
- sharing app plans (ex3.2)
- giving & getting feedback
- video tutorial: demo db update query and abstracting functions
- other "fun" resources
getting & giving feedback
- share what you like. Listen to what is good & do more of that.
- this reminds me of... Ask yourself why / how your work is similar. Research? How is yours different?
- open ended question. Don't answer the question verbally, answer it in your work.
- something good, something to improve, something good. Consider taking the suggestions and making improvements.
- try one of these techniques
- more feedback on feedback
Plus an article regarding feedback:
ex 3.3: db app alpha version or working draft
Share your app alpha version with your partners.
- test & debug
- gather & record feedback / comments
- record your plan for which issues you will address
Save this feedback to incorporate into a Case-Study for your portfolio.
to share 09/11
ex 3.2: db app plan (started)
Share your app plan including:
- elevator pitch (short, 30s description) 08/31
- data you will be gathering
- other data in your db or an API
- sketches, wireframes, moodboards
to share 08/31 & 09/07
another day /24
- project 2: personal API feedback
- questions / review of db connect, select, insert?
- question / code review of db error checking & form integration?
- file permissions (chmod) on _includes folder
- unique (keys)
- file naming: keep original file, make "backup versions"
- project 3: dynamic db app details
- scrum: share project 3: dynamic db app plan / brainstorming
Project 2: Personal API feedback
- array methods, .filter, .map & .includes
- shifty UI, especially nav
- onclick in HTML
- mixed content errors (https / http)
- getElementById( ) vs querySelector( )
- promise chaining vs async / await
- ?? camelCase (searchForm) vs PascalCase (ShowMoreBtn)? vs snake_case (show_more_btn): be consistent
- ??process?? process example
Project 3: dynamic db app
Create an application that uses a database share & gather information that helps solve a problem, provoke thought, entertain or delight. The minimum requirements include doing the following:
- display data to users
- allows users to insert data
- includes at least 1 way to manipulate or work with the data i.e.
- sort data
- filter data
- search data
Ideally your database should build on what we have learned in projects 1 & 2 including:
- file management & site maps
- mobile first design
- CSS grid for layout
- js coding techniques such as fetch, createElement, querySelector, addEventListener, loops, functions, objects etc
evaluation
- content
- features: display & insert data
- design & layout
- technical (php & js coding)
- process i.e. elevator pitch, sketches, wireframes, moodboard & pseudo code (or similar)
- plus: getting & sharing feedback
due: Sept 14th presentation with a few days to fix up based on feedback!
ex 3.1: select & insert
Create a necessary pages to select & insert data. At a minimum you will probably need 3 files.
- connect
- select
- insert
- bonus: create the html form (with accompanying css & js) to display & insert data
day 12: half full or half empty?
- more video tutorials for interacting with databases
- video tutorial: demo db with error checking
- video tutorial: demo db with input porm
day 11/24: db baby!!
This is the day your life will surely change. Or at least we are taking a step backwards towards... well forwards really but towards the backend.
- project 2: API app presentations
- brainstorming ideas for db projects
- mySQL, phpMyAdmin
- CRUD (create, read, update & delete) ... but really just SI (select & insert)
db resources
Note that we are using php & mySQL, administered through PHP MyAdmin.
The programming style we are using is "procedural" using plain php without any framework. Object oriented and PDO are 2 other popular styles. Better, but more complex to start.
day 10/24: we be interfacing
here's the plan
- feedback on APIs ex2.2 & 2.3
- dom shifting with dynamic content??
- at least enough styling to make app usable / legible (for Portfolios??)
- CSS for maps... need width & height (not 100% kinda)
- callback on maps needs to be named function (not arrow nor js module)
- keep your dynamic pages well organized... label links properly, make sure they work.
- fundamentals: js objects revisited
- questions? debugging? work time
- presentations at 11ish?
day 9/24: maps & objects
feeling lost? Consult the maps!
- admin: live class Thursday?
- weather api feedback
- code review maps API
- work time / questions etc
- breakout rooms
- fundamentals: objects
- connecting VSC & GitHub
ex2.2 maps API
Do like Dora. Call a map, any map. Your map API should use Google API to call a map. It can be any one of the following.
Bonus challenge: add a feature based on the Google Maps JS documentation, or an idea of your own.
due: August 14 or 21st
1/3 of the way (day 8/24): personal API
other good resources
- Mozilla Developer Network (of course)
- Web Dev Simplified w/ Kyle
- Kevin Powell for CSS
- CSS Tricks w/ Chris Coyier
Let's take a look at @media queries with this gallery example.
homepages feedback
some general feedback on homepages
- !! vs. +/- in evaluation comments
- did you look at your site on mobile?
- :hover pseudo element
- clickable links? (w)
- <header class="header"> ?!!?
- @media queries
- numbering elements?? (y)
day 7/24: review? maps?
review??
- fetch API
- async / await function
- json & dot.syntax
- function parameters
- .querySelector( )
- .createElement( )
- innerHTML =
- append( ) & appendChild( )
- .setAttribute( )
- .classList.add( ) & .classList.remove( )
- addEventListener( )
- arrow functions
- loops: for loop, while loop
share your plan in small groups
The first step in being able to create a good application is to be able to express it in plain language.
- chosen your API? share it
- share your MVP plan
- share your API project plan
Google Maps API?
day 6/24: popular APIs
ex2.2 MVP API (minimum viable product)
Choose an API that interests you. Google topics of interest or check out this list from ChatGPT above. The idea is that you use this as a first step towards developing your app fully. Your app should include:
- a title
- a short description or slogan
- a working demo, using the API you have chosen
- a link to the API source / documentation
- your name
due: August 10th at the end of class
day 5/24: we are now dynamic!!
- presentations of homepages (starting with those who haven't presented yet)
- 0.9 and 0.6 as marks = max 90% & 60%
- let vs const vs
var - loops? for, forEach, while
- geolocation API
- review / questions regarding weather API
- adding geolocation to our weather app
- cocktailAPI video demo
day 4/24: CSS & grid
Project 2: API app
Your API app project is designed to learn how to integrate a dynamic data source, using UI/UX principles. In the next project we will be creating our own API from an original database that we create.
Create an app using an API that allows user interaction. Your app should:
- utilize data / features made available by the API
- provide a positive user experience & interface
- use the fetch API & async/await functions
- share your design process
evaluation
- content (use of API data)
- UI/UX
- design & layout
- technical (js coding)
- process
due: August 17th before class
ex2.1 weather app
Using the openweathermap.org api (or similar) create a weather app that uses a public API. You app development should include:
- a process or workslows including elements such as sketch, wireframe & moodboard
- async / await funcitons for asynchronous javascript
- fetch API to call the weather API
- querySelector( ) and createElement( ) to display data received.
Focus on js coding, keep the design simple & utilitarian.
due: Thursday August 3 by the END of class
API resources
in-class demo videos
my videos
APIs There are thousands of APIs available. Here are a few we will look at in class. Find one about a topic that you are intested in.
PHP / db resources
We will use mySQLi procedural coding. While OOP (Object Oriented Programming) may be better & less verbose, it is also more difficult for beginners.
day 3/24: scrum
- workflow & process
- watching the videos
- marks & grades
- scrum: wireframes
- moodboards
- live, in-person class(es)?
- disk-usage
resources
- Kevin Powell CSS grid intro
- CSS Grid by Example
- CSS grid (CSS Tricks)
- in-class CSS demo from wireframes
agile development resources
- agile development primer. Be sure to check out the manifesto.
- scrum
- agile (small) team roles. Note that you may be in multiple roles. i.e. product owner & stakeholder.
"Daily scrum or stand up: This is a daily super-short meeting that happens at the same time (usually mornings) and a place to keep it simple. Many teams try to complete the meeting in 15 minutes, but that's just a guideline. This meeting is also called a 'daily stand-up' emphasizing that it needs to be a quick one. The goal of the daily scrum is for everyone on the team to be on the same page, aligned with the sprint goal, and to get a plan out for the next 24 hours.
What is scrum and how to get started, Atlassian
day 2/24: clean up & semantic HTML
- Plesk administration
- Wordpress installs
- php version > 8xx
- ImmnunifyAV
- questions on videos?
- sketches
- wireframes
- wireframe > html + CSS
- live coding? (semantic HTML)
- dynamic homepage
- purpose
- audience
- ux (user eXperience)
- ** your own images!!
- css reset?
- wireframe to HTML in-class demo
- wireframe to HTML demo video tutorial
layout & moodboards
Here are a few resources to help you. A short video and 2 articles.
- website layout for
beginners (rows)
- Moodboards in mobile app design
- moodboard examples
sketching an app / webpage
It's important to develop a design process. Here's a basic one that you can use, build on and refine as needed.
- define / plan content for site
- create quick sketches of layouts
- create wireframes based on those sketches
- create a moodboard with design elements to inspire
- create mockups and prototypes
Here are some helpful resources:
- creating sketches
- creating wireframes
- creating moodboards
- What does AI think should be in a moodboard?
video demos
- sketch / wireframe
- plan content (weather API)
- from sketch to HTML to CSS (note: video for slightly different context, but still applicable)
- NEW wireframe > HTML video
exercise 1: sitemap
Create a site map for your webroot homepage.
Your sitemap will probably resemble the example I provided.
It should:
- start from your "httpdocs" folder
- show main folders & files for classes & projects
- note: folder & file names should be exact, so you can use as a reference.
- should include at least 1 more complete "template" of a class. You don't have to show every folder's content, if it is very repetitive
- be clearly labeled (i.e. ex1: sitemap) and linked from your /dynamic/ homepage.
file naming convention:: I strongly suggest you use ONLY the following letters, numbers and characters when naming files:
- a-z
- 0-9
- - (hyphen) _ (underscore)
Do NOT use capitals, spaces or other special characters. Trust me... it will make your life simpler.
due: Thursday, July 20 (end of day)
exercise 2: wireframe
Create a mobile-first sketch and then a wireframe for your /dynamic homepage.
Refer to the videos above for examples.
Your sketch should give a rough idea of your site layout.
Your wireframe should include all the page's elements.
due: Monday, July 24 before class.
exercise 3: moodboard
Create a moodboard based on your sketch and wireframe for your /dynamic homepage.
Your moodboard should include the following:
- screen captures of a couple sites you like
- images of colours you like
- images of fonts you like
- examples of layouts you like
- examples of photo & illustration styles you like
- font (ideally from Google fonts)
- colour scheme
My suggestion is to keep it simple at this point.
due: Thursday, July 27 before class.
project 1: homepages
Create a homepage that links to all your classes and class homepages that link to your assignments
You will create at least 2 pages, but as many as 10 or more.
Your web root (httpdocs) homepage should include:
- your name
- program title
- links to class homepages
Your class homepages should include:
- your name
- course title
- links to all (some?) assignments
All your pages should apply web design and UI/UX best practices, what you have learned in your classes including these principles:
- mobile first LukeW: Mobile First video plus, check out his articles.
- responsive / adaptive Ethan Marcotte
- semantic html
- This is not the web. Brad Frost
- accessible
Your pages should probably include the following elements
- <title>
- <nav>
- <header>
- <main>
- <section>
- <article>
- <footer>
Also use CSS grid for layout.
Note that we'll do some exercises with the following deliverables:
- site map
- wireframes for both mobile (FIRST!!) and desktop
- moodboard with colour scheme, font(s) and image style
due: Monday, July 31 Thursday July 27 at beginning of class when you will
present your home & dynamic web programming pages to the class.
house keeping
Here is a list of house-keeping things we need to do.
- remove unused Wordpress installs
- scan with ImmunifyAV
- remove .vscode folders from web server
- update PHP to v. 8