Skip to content
This repository has been archived by the owner on Jun 8, 2021. It is now read-only.
/ kpi_student Public archive
forked from InProgres/kpi_student

Text game about student and how he survives in the hell of university

License

Notifications You must be signed in to change notification settings

d9nchik/kpi_student

 
 

Repository files navigation

Student

kpi_student

The game brings us to the beginning of student life. You will start as a simple student with not a big amount of money in the new city, that is not ready for new visitors. Game contains:

  • logical puzzles
  • strategic elements
  • puzzled plot
  • not definitely solutions
  • fortune
  • a bit of mystery
  • a lot of studies
  • and much more

Could you survive all it's challenges? The KPI and his hostels are waiting for you.

Interaction with boss

weekly you will be fighting with boss

Features and Requests

Our game is not planned with hardcoded plot. Everyone can change it with the submission of plot fragment via our in-game submitting form.

In this project, a game will have those features:

  1. The user must log in to start the game in one of the following ways:
    • Mail
    • Google account
    • Github account

Login form

login form

  1. If the user has forgotten his password, he will be able to restore it at the next authorization attempt
  2. The user will be able to monitor and pump his character within the categories of actions presented in the game, namely, train him, monitor his health, finances
  3. The user will be able to log in on any device that supports the browser and then continue the game with the saved progress
  4. The game contains events. Events will affect the game progress, depending on the user decision and the state of the character. The episode will occur as the character develops and depending on the playing time
  5. Each user will be able to offer his event, which will have to go through the approval stage by other users to add to the game
  6. In the game, realized inside the game currency, which the user can spend on the development of his character and passing events
  7. The game has a scale of experience, which the user can replenish by performing various actions during the game
  8. Inside the game: time counts from the moment the user login until the moment the user left the game
  9. Also, inside the game, actions that the user will perform with his character in addition to proposing new events and voting will influence the time.
  10. We will use firebase for deploying on hosting, authenticate the user and store data for synchronization.

Submission of new cool idea

you create the game

CI/CD

  • For CI we will use Github actions. We will test code with prettier, eslint and test available tests for node 10, 12, 14.
  • For CD we will use Firebase GitHub actions to deploy a pull request on a temporary link and see the result. Also, after merging into master we will deploy the site on firebase hosting with a permanent link.

Demo of gameplay

Image of main page

The main page of screen

Image of main page

Example of game menu

Requirements

To start an adventure you need a modern browser with JavaScript support and nothing more.

Dependencies

We depend on

Development dependencies

Architecture of application

Architecture as has been mentioned before is based on firebase services. Look more about architecture.

Available Scripts

Before running any command (you just need to to do that procedure only once):

npm i && cd backend/functions && npm i && cd ../frontend && npm i && npm i -g firebase-tools

In the project directory, you can run:

npm start

Runs the app in the development mode.
Open http://localhost:3000 to view it in the browser.

The page will reload if you make edits.
You will also see any lint errors in the console.

npm run test:watch

Launches the test runner in the interactive watch mode.
See the section about running tests for more information.

npm test

Launches the test runner in the CI test mode. See section on your own environment

npm run test:watch

Launches the test runner in the interactive watch mode.
See the section about running tests for more information.

npm run test:coverage

Launches the test runner with coverage in the interactive watch mode.
See the section about running tests with coverage for more information.

npm run format

Launches prettier on every file and write to drive.

npm run format:stage

Launches pretty-quick on stage files.

npm run check-format

Launches prettier on every file and check whether they properly formatted if not exit with an error.

npm run lint

Runs eslint against src directory

npm run lint:write

Runs eslint against the src directory and tries to fix errors and warnings.

npm build

Builds the app for production to the build folder.
It correctly bundles React in production mode and optimizes the build for the best performance.

The build is minified and the filenames include the hashes.
Your app is ready to be deployed!

See the section about deployment for more information.

npm eject

Note: this is a one-way operation. Once you eject, you can’t go back!

If you aren’t satisfied with the build tool and configuration choices, you can eject at any time. This command will remove the single build dependency from your project.

Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except eject will still work, but they will point to the copied scripts so you can tweak them. At this point, you’re on your own.

You don’t have to ever use eject. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However, we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it.

Learn More

You can learn more in the Create React App documentation.

To learn React, check out the React documentation.

FAQ

No question at this moment.:disappointed:

Contributing

We appreciate your help!

To contribute, please read the contribution guidelines at CONTRIBUTING.md

LICENSE

By using code in this repository, you agree with all statements in LICENSE file

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 90.3%
  • CSS 8.2%
  • HTML 1.3%
  • Shell 0.2%