Code Monkey home page Code Monkey logo

segp's Introduction

Software Engineering Group Project

WebApp

Hello and Welcome to the Technical Materials Repository

This repository will be your one stop shop for all the technical tutorials you need to get your single page web application up and running. The purpose of this repository is for us to give you practical tutorials that support you to learn the MEAN stack (a development toolkit for creating single page applications) basics, however, we expect you to try to build upon this knowledge base in order to create your own novel application.

You are able to clone this repository to your own machine or visit in your web browser. Inside the /dev/Worksheets/ folder, you will find all of the tutorial resources that will be used during each technical workshop for the entire unit. You can see how the tutorial resources relate to the weeks of the course in the schedule table further down this page. For instance, to prepare for the first week, please review the 0_gettingstarted.md tutorial document. There are also supporing videos inside the /dev/Worksheets/videos/ folder, that will support the markdown (.md) tutorial documents, so please review these materials.

Unit Objectives

Our aim is to turn you into “Full Stack Developers” - developers with experience of all aspects of a system implementation. Getting to grips with the MEAN stack development tool kit will give you first hand experience of building all aspects of a single web application, including:

  • Mongo DB for data storage
  • Express web application framework
  • Angular Javascript web frontend
  • Node.js application server

Single page applications can be large and complex to develop and we don’t expect you to become experts in everything. But, we wish to give you a “taster” of everything so you can at least be able to say that you have tried them.

Introducing the Design Brief: A Web App for “Serious Play”

The assignment for this unit is to design and build a web app that is based around the concept of “serious play”. By serious we mean something that addresses a real-world problem or raises the profile of a serious issue but using playful techniques to engage. This isn’t a free license to just make a game! Your system has to incorporate serious real world applications and it’s primary purpose is not entertainment. However, in contrast your application has to have elements of fun and play in it which capture and sustain user attention.

For example can create a web app that encourages children to brush their teeth whilst measuring progress over time? Or can you create a game for gorillas that gives a report of their eyesight? Or can you create an interactive social network game that educates and informs about social media addiction? Due to the fact that this is a significant piece of work, you will need to work in small teams in order to complete the assignment. This brief is designed to balance ambition with the challenge of technical implementation. The markers will expect to see a blend of low-fidelity / high concept design, coupled with the solid and significant implementation of certain key elements. The extent to which your team successfully achieves this balance will be reflected in the marks awarded for this assignment. Although you are not required to create a fully working system, each element that you do build and its relation to the other components of the system must be clearly explained and justified.

Due to the scale of this challenge, you are not required to fully implement all aspects of this application - you must develop your idea to a level that would be presentable as a proof-of-concept prototype to potential investors. Each week we will be covering the technical development alongside the design development of your project.

Some Examples of Seriously Playful Single Page Web Apps

Mee Too Rising

WebApp

'Me Too Rising' is a web app that uses an interactive globe interface to map Google Trend data - search volumes and media articles - regarding the Me Too movement. While this is a little less playful that what we would might expect from your projects, it is a great example of using interactive interfaces in order to explore or conceptualise serious issues from a novel perspective, and possibly capture the attention of a wider audience. Note, this single page application would be considered incredibly advanced for this unit and we would not expect you to reach this level of fidelity:https://metoorising.withgoogle.com

Dress By Weather

WebApp

'Dress By Weather' is a web app that solves a serious issue for any aspiring Derek Zoolander - how to decide on the best clothing options for the weather. Again, this app is a little less playful than we might expect from your own projects, certainly in terms of interactivity, but it certainly has great utility and solves a genuine problem that most people face on a daily basis: https://www.dressbyweather.com

Keep Portland Weird

WebApp

'Keep Portland Weird' is a web app that is not short on fun, even if the serious issue that it addresses exists only in the aftermath of a speculated future natural disaster. Nevertheless, it is designed to highlight the quirks of the Portland community and is a way for residents of the area to derive feelings of relatedness and connection to their fellow Portlanders: https://keepearthquakesweird.com

Introducing the Technical Team

The members of the team supporting the technical workshops and learning materials, and technical queries are Tom Bale and Marceli Wac. Tom is a former graduate of the MSc Conversion Course at the University of Bristol, now studying a Human Computer Interaction and Vision PhD which considers AR for Nuclear Plant Maintenance. During this unit Tom will be focused on MEAN Stack & Technical workshop development/delivery. Meanwhile Marceli PhD candidate in Digital Health and Care at University of Bristol. During this unit, Marceli will be undertaking technical support related to software architecture, development and DevOps.

Deliverables and Documentation for you Web App

The unit will be 100% coursework assessed and undertaken in your groups. Collectively you will have to deliver:

  1. A MEAN stack web app (with source code posted on Github)
  2. A project report on GitHub which documents both the product and the process of the development

MEAN Stack Web App

You must use Github to collect together all your work as a portfolio which you will then deliver at the coursework deadline. However, you should also use continuous integration (Docker or online) so we can provide feedback throughout the development process. You will learn about setting this up in the technical materials and workshop.

Project Report

Also on your Github repository, you must write a front-page document (readme.md) that will form your project report. It is scored out of 100 marks and should include the following sections in the order outlined.

Team

  • Team (product) name
  • Name / photo / role for each team member.

Introduction [10 marks]

  • Abstract. Motivation for the project, framing of the problem and a high-level overview of the system.
  • Project Objectives. The high level goals of the project and the contribution towards solving the problem. A checklist against which the team can evaluate their success.
  • Video. Short (1-2min) demo video to explain your system (think Kickstarter)

Background and Motivation [10 marks]

  • Background literature. Academic research review.
  • State of the art survey. Current industry review.
  • Clear definition of the problem. How does your project relate to the above? We will be marking the ability of your team to identify a worthwhile and important problem and clearly articulate the scope and challenge of the problem.

System Implementation [20 marks]:

  • Stack architecture and system design (e.g. class diagrams, sequence diagrams).
  • Back End - MongoDB - database implementation, the data model that you developed your back end from (e.g. entity relationship diagrams).
  • Middle Tier - Express, Node, the RESTful API
  • Front End - Angular. Details of implementation.
  • Additional elements and components e.g. authentification. Tell us about any other aspects not covered above!
  • Deployment details (including Docker), include how you have been achieving continuous integration and deployment.

UX Design [15 marks]

  • Design Process and Early prototyping and ideation (including mood boards and paper prototyping)
  • Identification of interacting users and broader stakeholders.
  • UX approach – design heuristics/approach, design methods (design fiction / heuristics)
  • Understanding of user group (questionnaires / user stories / interviews)
  • Wireframes and interaction flow diagrams for final key subsystems.

Sprints & Project Management [15 marks]

  • Group working methods used (for instance did your team choose a particular style of agile? what communication channels did you use?)
  • Discussion of team roles (specialisation is ok!). A summary of individual contributions (note: this is for reference, your team will all receive the same grade!).
  • Documentation of your sprints, including both high level overview, timeline, and selected highlights that were critical points in the project (remember to show the users stories implemented in each sprint). We expect a summary of meeting logs (including for instance apologies for absence etc)
  • Team use of Git, how your team used continuous integration / continuous deployment. Streamlining of workflow throughout.

Evaluation [15 marks]

  • Details of how you evaluated your designs (techniques used & awareness of their limitations). Description of techniques suitable for your particular design. A timeline of evaluation of your design.
  • Unit testing / Functional testing.
  • User acceptance testing. Evaluation of your design with users – methods undertaken, findings, implications.

Conclusion [10 marks]:

  • Reflect on the working practices of your group, how well they did or did not work, e.g, management of issues, communication, Agile (etc).
  • Reflective discussion of the success of the project. How well did your project fulfil the brief? Were all of your own objectives met
  • This is a chance to reflect on how coronavirus has affected your project (remote working practices etc)
  • Discussion of Social and Ethical implications of your work.
  • Discussion of future work (in terms of design, development and evaluation)

Presentation [5 marks]

  • There is a 5% mark for presentation, including formatting. We are looking for consistency, readability, conciseness, good use of figures and with the ultimate aim of this being a readable and useful public repo!

The Unit Schedule

week uni week theme theory development project
1 13 Introduction + Overview 1a - Welcome & Introduction
1b - Team Intro
1c - Project Brief
Overview Getting Started Groups
2 14 Agile Development + Team Collaboration 2a - Waterfall & Agile
2b - Teams & Roles
2c - Reqs. User Stories
CI, DevOps + Docker Design Thinking
3 15 Understanding the System Stack 3a - What is MEAN?
3b - OO Design
3c - Data Models (JSON)
Angular, Client Side Data Model
4 16 The Front End 4a - Intro to Front End
4b - Git Report
4c - Pair Programming
Angular Dashboard Documenting your Project
5 17 The Middle Tier 5a - Middle Tier Concerns
5b - Advanced Git
5c - Unit Testing
Angular Dashboard Launch your API User Testing
6 18 The Back End 6a - Welcome to the Back End
6b - Separation of Concerns
6c - Integration Testing
Deploying with Docker Engineering Ethos
7 19 Deployment + Beyond 7a - Continuous Deployment
7b - Social & Ethical Implications
7c - Evaluation
Express through Services
8 20 Looking at Sprints 8a - Project Review
8b - Honing your Sprints
8c - Serious Play Revisited
MongoDB Persistent Storage
EV1
EV2
EV3
9 21 team sprints Testing and Errors Team Feedback Session
10 22 team sprints User Authentification Team Feedback Session
11 23 team sprints
+ finishing up
Project submission end of week.
12 24 n/a n/a n/a n/a

segp's People

Contributors

thomasbale avatar sigray avatar marceliwac avatar peteinfo avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.