fluffy-engine

Passion Fruit Studios: WEBDEV2 Coursework 2

Logo of dance organisation

Table of Contents

GitHub Repository

GitHub Repository Link: fluffy-engine

Author

Kym Hannah: s2247460

Description

This is a web application that has been created for a local dance organisation called ‘Passion Fruit Studios’, based in a fictitious location called ‘Dance City’.

The application is built using the MVC (Model-View-Controller) design pattern, and is designed to allow users to view and book courses, and allow the organisation to manage these courses. The web application is built using node.js, express.js, NEDB database to store data, Mustache templating engine to render views, and the TailwindCSS Framework for styling.

The application is deployed on Azure, and is hosted on a free tier of the Azure App Service. Beyond the scope of this project, I would consider upgrading to a paid tier of the Azure App Service, to allow for more storage and better performance, as well as consider using a more robust database solution, such as MongoDB or PostgreSQL, to allow for better scalability and performance.

The CI/CD pipeline is set up using GitHub Actions, and the application is built and deployed automatically when changes are made to the main branch. I decided to use GitHub Actions for the CI/CD pipeline, as it is a quick and easy way to set up a CI/CD pipeline due to simple integration instructions with Azure, SonarCloud and Snyk.

SonarCloud is used for static code analysis, and is set up to run automatically when changes are made to the main branch. Snyk is used for security scanning, and is set to test weekly (due to being on free tier) for vulnerabilities in the codebase and dependencies.

Snyk alerted me to a vulnerability with the ‘express’ package, which was fixed by updating the package to the latest version. It automatically created a ‘pull request’ to update the package, which I merged into the main branch.

Documentation is generated using JetBrains Writerside, and is hosted on GitHub Pages. The pages are written in Markdown.

The application is built using JetBrains WebStorm IDE, and uses JetBrains YouTrack for issue tracking.

Technologies Used

Documentation

I have created a more in-depth set of documentation, which can be accessed here: Documentation

Organiser View Docs

Features

Features are based on requirements

Dancers (Users not logged in)

Organisers (Users logged in)

How to Run the Application locally

The application is deployed on Azure, and can be accessed on the following link: Passion Fruit Studios

  1. Clone the repository to your local machine.
  2. Open a terminal and navigate to the root directory of the project.
  3. Run the following command to install the dependencies:
    npm install
    
  4. Create a .env file in the root directory of the project, and add the following line to it:
     GOOGLE_MAPS_API_KEY=[See message sent via assignment submission]
     ACCESS_TOKEN_SECRET="Random string for Web Application"
    

    As I don’t want to reveal my google maps API key publicly , I have sent it via the assignment submission. Please use the same key to run the application locally.

  5. Run the following command to start the application:
    npm start
    

SonarCloud Status

Quality gate

Test Results

System Test results are available in the Test/TestPlan.md file.
Evidence of the tests are available in the Full System Test folder.
This contains PDF and video evidence exported from Xray Exploratory App.

2 Issues were found and fixed: