Team Member: Xiao Lei Zhang, Guoqiang Ou, YongTian Chen
An image editor application which allows gallery owners of the Web Gallery to edit their uploaded images by applying 2D and 3D effects. The 2D editor is similar to Microsoft Paint. The 3D editor is similar to Microsoft Paint 3D. The application also allows image processing using deep learning models from IBM Watson such as Neural Style Transfer API.
Basic gallery functionalities (same as homework):
Non-authenticated users can:
- register or login to the application
Authenticated users can:
- access 2D/3D Editor
- view uploaded images in 2D or 3D editor mode
For 3D Editor features, authenticated user can:
- insert planes, 3D cubes, texts, other objects, and images into scene
- insert lighting effects
- scale, rotate, translate 3D objects using mouse or edit properties via side menu
- change color of inserted objects via side menu
- add adjustable fog effects via side menu
- save 2D images from 3D editor
- toogle object visibility via side menu
- change object name via side menu
- change scene background color via side menu
- display type of object and object geometry type on side menu
- create new 3D drawings (clears current scene)
- delete inserted objects using Del key
- move through scene using arrow keys
For 3D Editor features:, authenticated user can:
- export or import models from 3D editor as json
- logout or return to home page of website
For 2D Editor features, authenticated users can:
- insert text, lines, circles, shapes, images onto canvas
- select multiple objects by double clicking
- scale, rotate, or translate elements on the panel using mouse
- apply filters such as blur, grayscale, etc. to selected objects
- apply rotation and flip to selected objects
- toogle bold, underline, italics on inserted selected text
- inserted selected objects are removable using Del key
- selected text objects are also removable using delete textbox button
- change fill color of selected objects
- export canvas as png
For image processing features implemented with IMB Watson Vision Model Apis, authenticated user can:
- image colorizer, image super resolution, image neural style transfer (Optional)
- Frontend Framework: Angular
- Backend Runtime Environment: Node.js
- Backend Framework: Express.js
- 2D image editing libarary: snap.svg
- 3D image editing libarary: three.js
- Machine Learning APIs: IBM Watson (Optional feature)
- Work with 3D: implement 3D image editor
- Eliminating security issues
- Learning numerous libraries/frameworks in a short period time
- Implement editor functions involving mouse and keyboard events (e.g. resizing, dragging, moving through space)
- Implement Frontend using AngularJS and integrating web applications (2D/3D Image Editors)
Visit at imageditor.me
-
Post
- Description: Sign up the user by given username and password
- Request:
POST /create/
- content-type:
application/json - body: user object
- username(string) the username need to sign up given by request
- password(string) the password need to sign up given by request
- firstname(string) the user firstname given to sign up by request
- lastname(string) the user lastname given to sign up by request
- Request 200
- content-type:
application/json - body: user object
- username(string) the username given by request
- hash(string) the randaom generated hash
- firstname (string) the user firstname
- lastname (string) the user lastname
- createDate (Date) Date that the use object been created
- Respond: 400
- username or password does not exist
- Respond: 500
- connection err
- Respond: 409
- Username already exist
- curl example:
curl -H "Content-Type: application/json" -X POST -d '{"username":"alice","password":"alice"}' -c cookie.txt localhost:4000/create/
-
Post
- Description: Sign in the user by given username and password
- Request:
POST /authenticate/
- content-type:
application/json - body: user object
- username(string) the username need to sign up given by request
- password(string) the password need to sign up given by request
- firstname(string) the user firstname given to sign up by request
- lastname(string) the user lastname given to sign up by request
- Request 200
- content-type
application/json - body: user object
- username(string) the username given by request
- hash(string) the randaom generated hash
- firstname (string) the user firstname
- lastname (string) the user lastname
- createDate (Date) Date that the use object been created
- Respond: 400
- username or password does not exist
- Respond: 500
- connection err
- Respond: 401
- wrong password or username
- curl example:
curl -H "Content-Type: application/json" -X POST -d '{"username":"alice","password":"alice"}' -c cookie.txt localhost:4000/authenticate/
-
Get
- Description: Get Use by input ID
- Request:
GET /current/ - Request 200
content-type:
application/json
- body: user object
- id(int) the id create when the user object was created
- curl example:
curl -b cookie.txt -c cookie.txt localhost:3000/current/
-
Put
- Description: Update the use by input ID
- Request:
GET /:id/ - Request 200
content-type:
application/json
- body: user object
- id(int) the id create when the user object was created
- Respond: 409
- Username already exist
- curl example:
curl -b cookie.txt -c cookie.txt localhost:3000/current/