Skip to content
This repository has been archived by the owner on Nov 9, 2023. It is now read-only.

lukatarman/full-stack-course-backend

Repository files navigation

Project and Course Description

Table of Contents

  1. Introduction
  2. Course Content
  3. Project Details
  4. Development Setup
  5. Running the Application
  6. Architecture

Introduction

This repository contains the backend implementation of a proof of concept application which was developed by Luka Tarman during an intensive full stack web developer course. The purpose of this repository is to demonstrate the skillset of Luka Tarman to potential employers.

A few words about the student. Luka Tarman is an adaptable and open minded Full Stack Software Developer with a preference for the backend layer. He started with software development due to his extensive experience with computers from a young age, and the fact that he finds great joy in solving technical problems. An up to date CV of Luka can be found here: CV.

A few words about the course instructor. The instructor is Stanislav Jakuschevskij. He is a Senior Software Engineer at IBM with a specialization in Blockchain. You can find out more about him on LinkedIn. In case a potential employer for Luka would like to ask questions about the course and Lukas programming education he or she can contact Stanislav via LinkedIn.

At the time of this writing the application is in a running state and can be demonstrated. If you want to test the application read Running the Application below. The development continues and new features are constantly introduced.

Course Content

The course content is documented separately. Follow this link for more info.

Project Details

The Steam Game Stats application collects current and historic player numbers of all games available on the steam platform through the steam api and other online sources. The idea behind it is at some point to identify trending "niche" games which are gaining in popularity before they hit the mainstream channels. In its current iteration there is not yet a distinction between niche and mainstream games. But this feature will be added in the future.

The backend is designed to run 24/7 and collect player numbers of games every day. It provides a REST API for the frontend.

The frontend shows a list of top trending games with a search functionality for games and a detail view with all collected player numbers in a table.

Development Setup

You need a code editor, Node.js and MongoDB installed.

  • Install the current Node.js version.
  • Install MongoDB community server.
  • If you use vscode add the MongoDB extension to test your queries.
  • Check out the backend code from this repo and the frontend from here.

Running the Application

You have to start the backend and frontend explicitly. The frontend depends on the backend. It won't display any game data if there is no running backend.

The backend can run alone, it will then start collecting game data but it expects a running MongoDB instance. Depending on your operating system first start a MongoDB server instance. Then navigate into the steam-game-stats-backend directory and execute in the terminal:

npm start

To run the backend tests execute:

npm test

For the frontend navigate into the steam-game-stats-frontend directory and execute:

npm start

Open http://localhost:8080 in your browser and explore the UI.

Continued Development

The application is still being worked on, and is becoming a product. The new project is developed using:

  • a monorepository setup
  • Docker containers
  • cloud deployments
  • CD/CD pipeline with Github Actions
  • trunk based development with feature toggles.

Click here to check out the new repository

Both the frotend and backend repositories have been archived.

About

Intense 1-on-1 full-stack course

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published