8000 GitHub - Ryan11c/kordle: Kpop wordle-game based on kpop idols. Made with Django REST Framework, Bootstrap, HTML, CSS, and JavaScript
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
/ kordle Public

Kpop wordle-game based on kpop idols. Made with Django REST Framework, Bootstrap, HTML, CSS, and JavaScript

License

Notifications You must be signed in to change notification settings

Ryan11c/kordle

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

62 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Python Django Django REST Framework JavaScript HTML5 PostgreSQL Heroku Bootstrap Amazon


Logo

Kordle

Wordle inspired K-pop idol guessing game

Live server

Table of Contents
  1. About The Project
  2. Run On Local Machine
  3. Usage
  4. Features
  5. Contributing
  6. Contact

About The Project

Logo

This project was inspired by Wordle, a game where you have to guess the correct word through the hints you get. Wordle was fun to play and I wanted to see how I can make my own version and put a twist to it. Being a K-pop fan, I wanted to create a fun and interactive game that combines the logic of Wordle with the massive world of K-pop idols! One important thing to mention is that this repository is for local development purposes and the production version of this application is on a private repository.

Frontend

Frontend is made with HTML, CSS, JavaScript, and Bootstrap5. JavaScript fetches idol data from the backend through API calls and works with the frontend to display hints. Mostly used Bootstrap5 to style the application as it is much faster to code compared to CSS. However, CSS was used in the home page to create the animations for the game.

Backend

Backend is made with Django and Django Rest Framework. Created a RESTful API that fetches both a random idol and the complete dataset from a local JSON file, which is then serialized for the frontend. Django handles authentication and user profile management. This includes login, registration, user-profile uploads, and win counts. Also integrated Amazon S3 to store user uploaded media.

Database and Deployment

Database is PostgreSQL managed by Heroku and the application is also deployed on Heroku. Heroku Dynos manage server processes and Gunicorn is used as the production WSGI server which handles incoming requests. The domain name playkordle.com is bought from godaddy, and routes traffic directly to my deployed application.

Run On Local Machine

Prerequisites

  1. Create a folder for the project and clone the repository into that folder:

    git clone https://github.com/Ryan11c/kordle.git
  2. Navigate to the folder. Create and activate a virtual environment making sure to use python version 3.12.3. This ensures all packages will work:

    python -m venv venv # <- on windows or on mac/linux -> python3 -m venv venv
    . venv/Scripts/activate               #on mac/linux -> source venv/bin/activate

Installation

  1. Navigate into the kordle folder and install required packages:

    cd kordle
    pip install -r requirements.txt

Configure the Project

  1. Create a .env file in the root directory of Kordle and put your secret key inside the .env file:

    DEBUG=True
    SECRET_KEY=*******
    
  2. Apply migrations:

    python manage.py makemigrations
    python manage.py migrate
  3. Create new superuser:

    python manage.py createsuperuser
    Username: admin
    Email address: admin@example.com
    Password: **********
    Password (again): *********
    Superuser created successfully.
  4. Start the development server:

    python manage.py runserver
  5. Open your web browser and go to http://127.0.0.1:8000/ to explore the application.

Usage

The main objective of this game is to guess the random kpop idol generated by the backend. First we type the name of a K-pop idol and see the feedback we get. Every idol has these categories: Icon, Group, Birthday, Height(cm), Gender, Company, and Nationality. The game will see which categories are correct or incorrect and display accordingly. If you guess correctly and you are logged in, your win count increases and is saved to your profile.

Features

Stats

Displays various statistics such as leaderboard, sign-up chart, and request-per-day chart. Leaderboard was created using bootstrap and django template tags while the charts were made from chart.js

Logo
Logo
Logo

Profile lists

Django template tags loop through the Profile objects and dynamically render each profile on the page. To enhance performance I added pagination to display 10 profiles per page.

Logo

Register and Sign-in

Simple bootstrap template to create the register and sign-in pages. You can check it out here.

Logo Logo

Contributing

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Contact

Ryan Choi - ryanchoi4421@gamil.com

Project Link: https://github.com/Ryan11c/kordle

About

Kpop wordle-game based on kpop idols. Made with Django REST Framework, Bootstrap, HTML, CSS, and JavaScript

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
0