As a team, build the web site for a fictitious product company. The team gets to decide the name of the company and what types of products it manufactures/sells. Be creative and have fun.
Every teammate will copy and run the following commands in the host machine terminal.
mkdir -p ~/workspace/group-projects && cd $_
Pick a theme that the team likes. A good place for inspiration is the Wordpress themes site. Do not purchase, or copy the theme code, just browse them for inspiration. Everyone should agree on a theme and ensure that each page is consistent with the colors, fonts, and/or images chosen.
Each team member is going to be responsible for the content of a different page, so decide on the name and content for each of those pages. Some possible options are...
- Home page
- Products
- Employee listing/contact
- Company history
- Company culture/mission
- Job listings
- Company awards
- Office locations
Regardless of the pages each team member works on, each team must have a Products page for their site that the team will collaborate on. See more details about the product page below.
Your team is going to learn how to use git to enable good teamwork when building a software product.
- Team leads will accept the assignment and create a team (with team name). Members will then join the team.
- Now that everyone has joined the same team, everyone clone the Github Classroom project into your current directory - which should be
group-projects
if you ran the setup commands. cd
into the directory that was created.- Before anyone on the team writes a single line of code, the team will decide on a branch naming strategy. Branches should be descriptive of the work that is going to be done on that branch. Some teams also decide to add the developer's information to the branch name, such as initials. For example, a developer named Jasmine Sheboygen is going to work on the job listings page for the web site. A good name for the branch would be
js-job-listing-page
. - Before you write any code, one team member will create the ignore file on a branch. Be sure to add
.DS_Store
touch .gitignore
git add .
git commit -m "Initial commit with .gitignore file"
git push origin YOUR BRANCH NAME
- Now make a PR and have your team approve and merge into master.
- Now everyone should
git pull origin master
. - That's the last commit you make on the master branch. At this point, each teammate will create a branch.
Everyone will work on their page on individual branches. Only when teammates feel their work is complete, the teammate will push up their branch to Github and create a pull request. One of the other teammates must review the pull request and give a thumbs up (Just type :+1 in the comment box).
Once the PR gets a thumbs up, the teammates can merge the branch. Follow the one way street flow.
Once the master is updated on Github, you may need to update your local branch. Again, follow the one way street.
- Pull master into local master
- Checkout your branch
- Within your branch, merge master
The team's product page will be driven from JavaScript code. Decide on at least, 8 products that your business manufactures. The product page must have a linked JavaScript file.
- Create a data structure to hold your products. This could be an array of objects or an object of objects. Discuss with your teammates.
- Each product item needs to contain the following information: name, description, price, and URL for product image. You can add more properties if that's what the team wants, but it must have those.
- The team will use JavaScript to add each product to the DOM.
- Each product must be a card. As a team, decide on the style of the card.
- The layout of the product page should be a grid of cards. 3-wide, 4-wide, 5-wide, the teams must decide how many cards are on each row.
- Use emantic HTML.
- Each page should have one meaningful and important headline (h1).
- All styles included within css file.
- Define problem statement
- Define primary user persona
- User Interviews (50% interview, 50% team/SMEs)
- Use your whiteboard and communication skills to wireframe each page before you build it.
- What information will be on the page?
- How should the information be presented?
- What is the layout? Just a list, or a grid? Sketch the views (whiteboard, pencil/pen)
- Create modular javascript; split your JavaScript into two files.
- Create a Factory
- The factory deals with data (data definition or creation).
- Use a Controller
- The job of the controller is to query and manipulate the DOM.
- Create a Factory
- Create data with object constructor.
- Include a competitor evaluation
- Add a form for ordering.