Jeb4dev / paint-webapp

[Flask] simple paint online with guesssing game and gallery

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Online Drawing and Guessing Game

Purpose

This project was made as part of the weekly programming challenge hosted by DevJam. The project was made for learning purposes. Made by Jeb and mihett05.

Gallery Page

image

Drawing in Guessing game (like scribble.io)

image

About the Challenge

πŸ›  Difficulty Level: Intermediate

πŸ“… Start: November 26th
πŸ“… Deadline: December 2nd 16:00 (4PM) GMT

πŸ“ Project Description

Create digital artwork on a canvas on the web to share online and also export as images.

πŸ“‘User Stories
  • βœ”οΈ User can draw in a canvas using the mouse
  • βœ”οΈ User can change the color
  • βœ”οΈ User can change the size of the tool
  • βœ”οΈ User can press a button to clear the canvas
🌟 Bonus features (optional)
  • βœ”οΈ User can save the artwork as an image (.png, .jpg, etc format)
  • βœ”οΈ User can draw different shapes (rectangle, circle, star, etc)
  • βœ”οΈ User can share the artwork on social media
  • βœ”οΈ Users can start a game, and compete in a game of Pictionary
✨ Custom features (not part of the challenge)
  • βœ”οΈ Users can like images
  • βœ”οΈ Users can go same session and chat
  • βœ”οΈ User can upload their artwork to the server
  • βœ”οΈ All artworks are listed in Gallery
  • ❌ User get 3 words and can choose whitch word to draw
  • βœ”οΈ Other users try to guess this word

Tech

The app is written in python using Flaks-library. Client communicates with server using post request, sockets and api. Images are drawn using canvas and uploaded to external server using api. "Draw and Guess" -game uses' flask socketIO-sockets.

Frameworks and libraries:

  • Flask - Micro web framework written in python.
  • Flask-Socketio - Flask-SocketIO gives Flask applications access to low latency bi-directional communications between the clients and the server.
  • Flask-login - Flask-Login provides user session management for Flask.
  • Canvas is used for drawing shapes.

Deployment

  • Heroku - Heroku is a cloud platform as a service supporting several programming languages.

Installation and running

This app requires python 3.7+ to run.

Clone git repo

git clone https://github.com/JesperKauppinen/keyboard-race.git

After cloning or downloading this git repo, install required python libraries

pip install -r requirements.txt

run app.py

python app.py

imfbb Api

Images are uploaded on imfbb servers. If you want to save images on the server, you need api key from imgbb. Save api key in environment variable: IMG_BB_API_KEY.

Deployment

App is hosted in heroku. To host app in heroku you need to enable heroku-postgresq. You also need to add the api key as convar environment variable. Use HEROKU branch for herou deployment as it also contains Procfile.

Contribute?

Want to contribute? Awesome!
This project was part of weekly challenges hosted by DevJam and won't be updated. Maybe you would like to work with us, hit me up and let's talk. :)

Credits

License

MIT

About

[Flask] simple paint online with guesssing game and gallery

License:MIT License


Languages

Language:HTML 64.0%Language:Python 23.5%Language:JavaScript 7.5%Language:CSS 4.5%Language:Mako 0.4%