Skip to content

Solo project for Helsinki University FullStack course. Scent collection application, where users can add scents and view them in a graph. Tecs: TypeScript - React - Node - Neo4J - Vis.js - Cypress

License

Notifications You must be signed in to change notification settings

apndx/ScentGraph

Repository files navigation

ScentGraph is a project for Helsinki University Full Stack course. In 2020 it my Full Stack course project, and in 2023 it was used as a base for Full Stack Part 11 exercise 11.20. ScentGraph is done using React and TypeScript for the front end, Node and TypeScript for the backend and Neo4J for graph database. The web application is hosted in Heroku. The database queries are done using Cypher. GitHub actions are used for CI and automated testing.

In ScentGraph users can add scents to the database. The scents can belong to various categories and the relations of scents, their categories and several scent properties can be visualized in a graph form.

ScentGraph has basic and admin users, and basic users can be created in the application. Admin users of ScentGraph can add properties that can be used in the scent creation.

I have used Fragrantica as a big source for inspiration for the idea, terms and structure of this application, so big thanks for the Fragrantica community for their excellent site and blogs.

Local Usage

For this application an Aura DB instance should be running. You should also have .env file where url, username and password for Aura DB are defined:

AURA_BOLT_URL = neo4j+s:https://yourdbidentifier.databases.neo4j.io
AURA_USER = neo4j
AURA_PASSWORD = supersecretpassword

More details for setting up the database for ScentGraph can be found in the database.md.

Commands

After cloning the repository these commands can be used in the repository root. The project works at least with the Node version v12.22.3.

Install dependencies:

npm install

Start application in dev mode:

npm run start-dev

Testing

At the moment some server and client helper functions are being unit tested. Also there is one route integration test. To run the integration test, an Aura DB instance should be running. The application frontend use has been manually tested on Crome browser, and there is a very simple browser test done with cypress.

To run tests against an Aura DB Neo4j:

npm run test-dev

To run browser tests with the GUI:

npm run cypress-open

To run browser tests with the CLI:

npm run cypress-run

To run lint check:

npm run lint

About

Solo project for Helsinki University FullStack course. Scent collection application, where users can add scents and view them in a graph. Tecs: TypeScript - React - Node - Neo4J - Vis.js - Cypress

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages