Code Monkey home page Code Monkey logo

painterino-online-paint's Introduction

Painterino-Online-Paint

Make sure to check out the new version ! Painterino v2

A simple multi-user web paint application made with JavaEE7.

alt text

alt text

alt text

Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.

About This Project

  • You can draw to canvas and anybody in the room can see!
  • You can only delete what you drew.
  • You can change the size as well as the color of your pen!
  • You can save the image to your local machine.
  • This application fully sports scaling and is responsive!
  • You can see who is online in the room.
  • If you want you can go offline and draw by yourself!
  • Your session is tracked so you dont have to login every time.
  • Full support for mobile and tablets!

Disclaimer

For this project I used AJAX system. You normally want to use Web Sockets or WebRTC API. If you want to scale this project to bigger audience I highly recommend using a real-time communication API.

Prerequisites

What things you need to install

You need Tomcat server 8 or above installed.
Locally installed MySQL or a MySQL server.
Compatible IDE, Intellij IDEA recommended for this project.
Web application 3.1 ( Configured web.xml is included )


Installing

For MySQL Database

You have to edit paintLogin.java Servlet to handle SQL communications if it is not compatible with your database.
Also you need to configure context data source and fill the necessary blanks.
If you want to use any database other than MySQL, you have to make necessary changes.

For Tomcat Application Server

Use Tomcat 8 or above. If you are running in online server like Amazon Elastic Beanstalk read the steps in paintLogin.java
and make changes to Data Source.

Database

This is a simple application so it has a simple database. SQL Script is below.

CREATE TABLE Users (
	UserID int NOT NULL AUTO_INCREMENT,
    Username varchar(40) UNIQUE NOT NULL,
    UserPassword varchar(40) NOT NULL,
    UserEmail varchar(40) NOT NULL,
    PRIMARY KEY(UserID),
    CONSTRAINT users_unique UNIQUE (Username)
);

Alternatively, with the correct naming conventions.

CREATE TABLE users (
	user_id int(11) NOT NULL AUTO_INCREMENT,
    username varchar(40) UNIQUE NOT NULL,
    password varchar(40) NOT NULL,
    email varchar(40) NOT NULL,
    PRIMARY KEY(user_id),
    CONSTRAINT users_unique UNIQUE (username)
);

Built With

Known Bugs

  • There is a bug on mobile or tablets that prevents you from picking a color, you have to spam the button.
  • If the server gets overloaded with data It can crash. See Disclaimer for recommended comminication ways.

Contributing

If you want to contribute to this project you can e-mail me - [email protected] or you can pull request.

Versioning

This project does not have versioning and made with learning purposes.

Authors

  • Ant Kaynak - Initial work - Github

License

This project is licensed under the MIT License - see the LICENSE.md file for details.

JSColor has different license. JSLicense - for details visit their page JSColor

GSON has different license. License - for details visit their page GSON

Connector/J License - for details visit their page MySQL

Bootstrap License

Acknowledgments

Questions

If you have any questions mail me - [email protected]

painterino-online-paint's People

Contributors

antkaynak avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.