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.
The course content is documented separately. Follow this link for more info.
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.
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.
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.
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.