See https://courses.helsinki.fi/en/aytkt21010/129098202 and https://github.com/fullstackopen-2019/misc/blob/master/projekti.md for the reference regarding the course information.
The project has been implemented in three different git repositories: the first one contains the backend implementation on top of NodeJS and GraphQL (this), the second repository has the React JS based frontend implementation and the third one has the experimental React Native implementation for iOS and Android mobile devices.
The application "Memory tracks" is designated for a user who utilizes Internet services with multiple devices and wants to easily access the previously store data. The application enables an easy way of storing/linking meaningful content (e.g. important notes, links to web resources that the user wants to have a look at a bit later). The notes can be stored, classified and searched by using keywords. The frontend takes care of fetching and presenting the information obtained from the API provided by the backend.
The backend implementation has been mostly built on the following technologies NodeJS, MongoDB Atlas, Mongoose, and GraphQL (Apollo Server). The API built on top of GraphQL can be used directly on the server (see the following section).
- nodejs (e.g. v.10.19.0), yarn/npm installed
- a database e.g. in MongoDB Atlas (the connection string is configured as environment variable)
- execute the command yarn install to install the required dependencies
- the production version of the backend is run by invoking the command yarn start.
The production version of the backend (i.e. the GraphQL API running on top of ApolloServer) resides at https://sleepy-woodland-08922.herokuapp.com/graphql. The run environment for end-to-end tests (always the most current version of the develop branch of the backend, against which the frontend code pushed to its develop branch is tested) is running at: https://pacific-spire-56237.herokuapp.com/graphql
- NodeJS
- GraphQL + Apollo Server and other Apollo related libraries
- ESLint
- Mongoose
- MongoDB Atlas
- Nodemailer