GameCenter is a mobile App (android & iOS) and an API to you manage all your games info in all yours platforms, so you can track the games you're playing, willing to play and finished. The goal of the application was to give users an easy way to manage all the games they have in their own mobile device. It was developed for the Integrated Project Classes, which is a course computer science students take at UFES - Universidade Federal do Espírito Santo, in Brazil.
Some of the things you can do:
- Login with your Twitch account
- Search for games to add to your library
- Change games that you already added status
- Set which date you started and finished playing a game, so you can track how long you took to finish it
Here are some of the languages, frameworks, tools and libraries used in development of this application:
This is the instructions on setting up your project locally. To get a local copy up and running follow these simple example steps:
This is all the tools you need installed to run the project and the versions that are preferred
- nodejs - v16.9.1
- java - openjdk 16.0.2
- mvn - 3.8.3
- expo - 4.12.0
In this project we used yarn, but you can run it with npm if you prefer
- npm - 7.21.1
- yarn - 1.22.11
If you are planning to run this project locally, you need to seach how to install all these tools for your Operational System, and you can find that in their official websites. Also, if you want to test the mobile application, you need to configure an Android Simulator or an iOS Simulator if you're using MacOS. You can use Expo web to run an web version of the app, but it's not working with the libraries we used
Clone the repo
git clone https://github.com/matheuslenke/GameCenter.git
To configure the MongoDB URI, go to backend/src/main/resources/application.yml
and change the parameters. You also need to change in backend/src/test/resources/application.yml
to change the parameters to the test database
# Enter back-end directory:
$ cd backend
# Install the dependencies:
$ mvn install
# Run tests:
$ mvn test
# Run Application:
$ mvn spring-boot:run
First, you need to create a .env
file at the frontend folder, copy the contents from .env.example
and fill the needed environment variables.
# Enter front-end directory:
$ cd frontend
# Install the dependencies:
$ yarn
# Run the aplication on development mode:
$ expo start
Here you can see some Gifs of how someone would use this app. Some of the features are:
- Log in with a Twitch.tv account, and it will link every game they add to their library
- See all their games by status, learn more about the game in game details
- Add new games to their library
- Change the status of the games in their library
- See what info we got from their Twitch.tv account, and log out
Here, we can see the file structure explained
Project root
│ README.md
│
└───backend
│ │ Here we can see all the Java classes from our app
│ └───src/main/java/br/ufes/gamecenter/apirest
│ └───ApirestApplication.java - Backend Main class
│ └───config - Some error classes
│ └───controller - Where the requests are mapped
│ └───model - Entities of the application
│ └───repository - Interface that connects with database
│ └───service - The logic between the controller and the repository
│ └───security - Spring Security classes
│
└───frontend
│ │ index.js - Entry file
│ │ App.tsx - First Component file
| |
│ └───src
│ │
│ └───assets - Images, SVGs, etc used in application
│ └───components - Components used in Screens
| └───config - Configuration files
│ └───global - Theme configurations
| └───hooks - All custom hooks and contexts
| └───routes - Application routes
| └───screens - All the app screens
| └───services - Connections to APIs with Axios
| └───utils - Some utilities functions
|
└───database
│ #Deprecated, this dockerfile isn't properly configured
│ to connect with backend
└───docker-compose.yml
If you have a suggestion that would make this app better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". If you are having any problem, open an issue with the tag "error"
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the MIT License. See LICENSE.txt
for more information.
Matheus Lenke Coutinho - matheus.l.coutinho@edu.ufes.br - Linkedin - Github
Igor Wandermurem Dummer - igor.dummer@edu.ufes.br - Github
Project Link: https://github.com/matheuslenke/GameCenter
Additional tools that we recommend to develop