Skip to content
justmejulian edited this page May 9, 2019 · 12 revisions


About

Our vision for zhawo is to build a modern progressive web app to help students of the ZHAW with their every day study needs. Using agile development, the goal is to work closely with students to provide an application that is tailored to their specific needs.

A few features that we are planning to implement:

  • Timetable: students often need to quickly check what courses they have next and where they need to go. The availability of this feature is very important and has been noted as being an issue with the "official" timetable app. Using intelligent caching and a modern user interface, we aim to improve this aspect.

  • Room search: when we first started there was an application, that allowed students to search for free rooms all over their campus. This was very useful as study programmes at the ZHAW put a huge focus on group projects, but with limited quiet public working spaces, finding a free room was often vital. The app that only ever existed for Android devices has since completely disappeared.

  • Menu plans: There are menu plans on the official provider of the mensa food's website. However, this site is rather unknown and we plan to include an easy way to check today's and upcoming menus and prices.

  • Student events: We plan to work with vszhaw to bring more attention to student parties and events, by integrating their event feed into zhawo.


Development

The latest release version of this project can be found here: Latest release

This project is split up into a backend Node service (./source/backend) and a frontend progressive web app built with React (./source/frontend). For development, please refer to the respective readmes.

There is an npm script provided in the root folder of this repository to start both backend and frontend concurrently. Note that this script only works if all root dependencies have been installed.

# Install root dependencies:
  npm install

# Install dependencies for both frontend and backend:
  npm run install-both

# Run backend and frontend for development:
  npm run start-both

# Run tests for both frontend and backend:
  npm run test-both

Both backend and frontend are JavaScript stacks. For continous integration we are using Travis CI. For test coverage we are using Codecov. We enforce a consistent coding style with prettier pre-commit hooks.


Workflow

Product backlog is managed with GitHub issues. All user stories must be labeled correctly with story points. Sprint Planning is done using the GitHub Projects board. For each Sprint, a new Project is added with 3 boards for ToDo, In Progress and Done.

When working on a feature/user story, the developer assigns himself to the issue and moves it from ToDo to In Progress. Each developed feature is initially on it's own feature branch. The branch is to follow the following naming convention: feature/{descriptive-name}. If development of a feature is complete, a pull request onto the master branch is made and the code reviewed by a team member whenever possible. After being reviewed the branch can be merged into the master branch and the issue can be moved to Done on the Sprint board.


Clone this wiki locally