Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/brieucdegoussencourt/languagegame

Simple Language Game
https://github.com/brieucdegoussencourt/languagegame

continuous-deployment heroku mvc-architecture oop php

Last synced: about 1 month ago
JSON representation

Simple Language Game

Awesome Lists containing this project

README

        

# Language Game Project
[LIVE HERE](https://brieuc-language-game-905a4a54f0ba.herokuapp.com/)

Welcome to the **Language Game Project**! This project was created as part of my training at [Becode](https://becode.org) in September 2024. It marks a significant milestone in my journey as a developer.

Here are the full [guidelines](/guidelines.md).

## πŸš€ Project Overview

The **Language Game** is a simple game designed to test the user’s language skills by providing random words that need to be translated correctly. The project is built with **PHP** and adheres strictly to the **Model-View-Controller (MVC)** design pattern.

## πŸ“š Main Achievements

- **OOP Structure**:
- Classes like `Player`, `Word`, and `Data` ensure a modular and reusable codebase.
- **MVC Architecture**:
- **Model**: Handles game data (words, translations).
- **View**: Renders the game interface and nickname form.
- **Controller**: Processes game logic, form submissions, and score tracking.
- **Continuous Deployment**:
- **Heroku and Git**: Synchronizing GitHub repository for continuous deployment.

## 🌟 Features

- **Nickname Input**: Users enter their nickname before starting the game, which is stored as the player’s name.
- **Random Word Translation**: Translate random words, with instant feedback.
- **Score Tracking**: Scores update based on correct or incorrect answers.
- **Game Reset**: Players can reset the game and start over with a new nickname.

## πŸŽ“ Personal Achievement

This project represents a significant achievement for me as a student at **Becode**. It is the first time I have successfully implemented a project with strict adherence to the **MVC design pattern**. Throughout this project, I learned how to properly structure a PHP application by separating concerns, ensuring that the **Model** (data), **View** (UI), and **Controller** (logic) are properly decoupled.

I’m proud to say that this project reflects my newfound ability to follow **best coding practices** and **software architecture principles**, making this a milestone in my journey to becoming a professional developer.

## πŸ›  Technologies

- **PHP**: Core programming language used to build the application.
- **Composer**: Dependency manager used for autoloading and managing third-party libraries.
- **Heroku**: Platform used to deploy the project.
- **GitHub**: Version control and collaboration platform where the project is hosted.

## πŸš€ Deployment

This project is deployed on **Heroku** and can be accessed [here](https://your-heroku-app-url.com). The deployment follows the **PHP Composer** buildpack, ensuring that all dependencies are installed and the project is properly structured for cloud hosting.

πŸ›  Future Improvements

β€’ Introduce a time-based challenge mode.
β€’ Integrate a database to dynamically manage the list of words and translations.
β€’ Improve the UI/UX for a more engaging user experience (CSS and JS).

🀝 Contributing

If you’d like to contribute to this project, feel free to fork the repository and submit a pull request. I’m always open to feedback and improvements.

πŸ“„ License

This project is licensed under the MIT License. See the LICENSE file for details.

## 🌐 Live Demo

The project is live on **Heroku**: [Language Game](https://brieuc-language-game-905a4a54f0ba.herokuapp.com/).

![screenshot](./screenshots/Screenshot1.png)