Giter VIP home page Giter VIP logo

study-administration-portal's Introduction

HdM Study Administration Portal

This project was developed for the course "334050 Mobile Medien" of Prof. Dr. Jörg Westbomke at the Stuttgart Media University. The web application was developed by Johannes. The web application can be accessed locally by using the test email “[email protected]” and test password “password”.

Project Goal

The goal is to develop an exam registration page that enables students to easily register and view exams not only on desktop, but tablet and mobile devices. Therefore, a web application will be developed focusing the following factors:

First, a responsive layout will be coded for the exam registration page using Bootstrap. Second, the structure and features of this page need to be improved. Third, reusable components will be created for making the application easy to adapt. Fourth, complex student data will be visualized using responsive charts. Lastly, the application needs to be made accessible via the Internet.

If there is time left, the other pages of the study administration portal will be created (e. g. implementing a login page). Also, the information architecture will be reworked, and a navigation implemented. Finally, the visual aesthetical design of the application will be improved (e. g. colors, whitespace, typography).

Wiki Overview

The wiki links are shown below:

  1. Home
  2. Problem Statement
  3. Project Goal
  4. Technology Stack
  5. Solution Approach
  6. Concept
  7. Development
  8. Application
  9. Conclusion

Repository Structure

The files in this repository have the following purpose:

  • bin: serves as a location where various startup scripts are defined for Express (the www file inside is an example to start the express app as a web server)
  • dist: the compiled code/libraries meant for production
  • node_modules: libraries and dependencies for packages, used by Node package manager
  • public: files to build and develop the project (original source files), before being compiled into fewer files to dist/ directory
    • assets (a logo, icons, and avatar pictures)
    • components: HTML elements that were outsourced to either be reusable or prevent code cluttering
    • javascripts: JavaScript files for the dashboard (Chart.js bar chart code) and exams (hide and show certain elements)
    • pages: includes all of the application HTML pages
    • stylesheets: styling of the application
    • index.html: login page
    • index.js: includes all of the JavaScript code used across the application (JavaScript code for inserting reusable components, login functionality, working links due to different routing with Express)
  • app.js: main configuration file for the Express application to handle actions such as the HTTP server, routing, and serving of static files
  • package.json: provides metadata of the project as well as handles the dependency management with Node package manager
  • .gitignore: text file that tells Git which files or folders to ignore in a project

Software Architecture

This is the current software architecture: image

Lessons Learned

Are more detailed list can be found on the lessons learned wiki page

  • Boostrap is great for development responsive apps due to many options for layouting (d-flex), aesthetic styling, useful components (e.g. Modals, Tabs)
  • making the web application accessible via the Internet was more challenging than expected
    • static routing needed to be coded
    • serverless HTTP took time to understand and implement correctly
  • tried vertical row display of tables for mobile, but switch to responsive tables:
    • reason: amount of courses (scrolling would be very long for vertical display)
    • reason: users are mostly interested in the first columns (name, id, ECTS)
    • responsive table improvements: always visible scrollbar and larger checkboxes

License

MIT License - Copyright 2020 ©

study-administration-portal's People

Contributors

johannesstroebele91 avatar

Stargazers

 avatar

Watchers

 avatar

study-administration-portal's Issues

Implement features feedback from professor

  • Add courses with study for enroll table
  • Fix tab bar (probably modal is the issue)
  • Rename register to enroll vor better distinguishment between deregistration
  • Semester column in
  • Add option for deregistering exams
  • Decide on reponsive table solution (suggestions from Chrisly on Moodle)
  • Fix navbar logo contrast

Setup express app and deploy via Netlify

Based on this tutorial:
https://www.youtube.com/watch?v=hQAu0YEIF0g

  • Install necessary dependencies (npm install express netlify-lambda serverless-http)
  • Setup file for ignoring node modules
  • Setup netlify.toml file for deploying application
  • Create dist directory for deployment on Netlify
  • Create scr directory for code
  • Create api.js file in src directory
  • Bringing in express and serverless-http package
  • Creating a express app instance 3, Adding a handler function for enabling executable to run
  • Setting up a router
  • Adding start and build scripts to the package.json for running app locally and building it for production

Create project book

  • was war projekt ziel! technisch! keine konzept!
  • Nicht in ich form
  • abbildung
  • keine wissenschaftliche paper nötig
  • zitieren! -> QUELLEN

Design Mockup

Create it in Balsamiq. Not a picture-perfect design, but solely a bare bone low-fi mockup for building the application

  • webpages
    • login
    • dashboard
    • navigation
    • exams
    • exam registration
    • verification modal for exam registration
  • Document it in GitHub wiki

Setup GitHub

  • setup milestones
  • setup basic tasks
  • setup labels
  • setup repository

Create presentation

  • say very satisfied with boostrap (one issue that adding flex layout based on breakpoints easier with flexbox)
  • show that the following technical things are the focus (express.js server & deployment on Heroku, navigation & footer on all pages the same (easy to edit), reponsive layout with Bootstrap (mostly d-flex)) *Ohne unsere Vorgespräche hätte ich aber *nicht so ganz nachvollziehen können für welche Art von Projekttyp
  • show why tables are good for mobile, too (tables are more horizontally oriented, while smartphone displays are vertically) -> need horizontal scroll which is bad (implemented always visible scroll bar, made rows large, made larger checkbox, its easier to see large amount of data which course list can have (not only 5 entries per study area)), AND most users are only insteresed in the name or id of the course (scrolling is mostly not necessary (edge case for 3% case)
  • show text and buttons are now bigger for easier use on smartphones (text is 14px at least, checkboxes are enlarged, buttons are big)
  • Explain why add button on top instead of bottom
  • mockup nur 1 Seite -> rest screenshots
  • Explain what could be improved and why i didnt make it

User research

Conduct a short user research:

  • interviews of the course Interactive Media
  • surveys of the course Mobile Media
  • online research about similar student portals
  • insert findings into the wiki

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.