Skip to content

Web development group project - Autumn 2021 - Metropolia

License

Notifications You must be signed in to change notification settings

jasminsp/webdev-project-A2021

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NUTIVITY PROJECT

Web development group project - Autumn 2021 - Metropolia

IDEA

To create a web application for different sorts of activity sharing for registered users.

SCREENSHOTS OF THE DEPLOYED APP

Landing page

Home page

PREQUISITES

  • Node (>= 16.0.0) and npm (>= 8.0.0)
  • MariaDB (>= 10.6.5)

BUILD

  1. Clone the project
    git clone https://github.com/dieu-vu/webdev-project-A2021.git --branch=version2 nutivity_app
    cd nutivity_app
  1. Install dependencies
    npm i
  1. Create/edit .env file with your database credentials. You have to contact owners for the credentials
 DB_HOST=127.0.0.1
 DB_USER=<your-db-user>
 DB_PASS=<your-db-user_password>
 DB_NAME=<your-db-name>
 JWT_SECRET=<your-jwt-secretorkey>
  1. Run the application
node app.js

API

🔗 API Reference for Nutivity App

USAGE OF THE DEPLOYED WEB

  1. Login

With credentials or without - if without then enter the home page for guests with limited functionalities.

  1. Register

Create a new username - after creation redirect to login. Email duplication is checked.

  1. User page
  • User can open side menu to modify user profile, example: Name, email, password and profile picture by clicking on edit button or profile picture. Email duplication is checked.
  • View joined activities and activities you as a user have published
  • Random image generation if the user has not added a profile image or there is an error downloading it.
  1. Activity page
  • Join and opt out from activities through detailed pop up window
  • Enter the comment section
  • View activity cards as stack
  • Hint texts to encourage users to open pop up menu
  • Random image generation if the user has not added an activity image or there is an error downloading it.
  • Only admin, moderator and activity owner can see delete button on activities
  1. Search page
  • Search activities by name/type, location or date
  • Join activities or opt out from them
  1. Pop-up window for the detailed-view of activity
  • Possible on every page where activities displayed
  • Access to activity specific comment platform
  1. Comment page
  • Connected with pop up windows and commenting is activity specific
  • Comment time visible in minutes, hours and seconds
  1. Admin
  • Only visible for admins on the side navigation.
  • Admin can delete all users, their activities and promote and demote moderators
  1. Guest page
  • The functionality for guests is very limited. They are only able to see the details of all valid - activities and search for specific activities by location, name or date.
  1. Account settings page
  • User can edit general information as in side menu in user page
  • User can change password
  • User can delete their own account with a confirmation required
  1. Secure with HTTPS redirection

DATABASE STRUCTURE

Database structure

We have created a database with four tables. The foreign key constraint ONDELETE and ONUPDATE is implemented for all table to keep integrity of whole database, e.g. so if one user has been deleted, all activities, his/her participation and comments will be automatically deleted as well.

For participate_in table, we have implemented double identifiers, so the same user can never join the same activity twice.

We also implement uni-temporal data for the activity table and comment_in table.

🔗 Project database SQL

CONTRIBUTORS

Dieu Vu
Jasmin Partanen
Xiaoming Ma
With support and teaching from course teachers: Patrick Ausderau, Ilkka Kylmäniemi, Aarne Klemetti, Ulla Sederlöf at Metropolia UAS.

Contact contributors for help if neccessary.

LICENSE

Apache License 2.0

About

Web development group project - Autumn 2021 - Metropolia

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 66.8%
  • CSS 18.4%
  • HTML 14.8%