Giter Site home page Giter Site logo

fanton-dev / intero-server Goto Github PK

View Code? Open in Web Editor NEW
0.0 0.0 0.0 1.57 MB

API and web-client for the Intero - Artificial Inteligence Designing System project.

License: BSD 3-Clause "New" or "Revised" License

JavaScript 3.99% TypeScript 89.29% SCSS 5.21% HTML 1.51%

intero-server's People

Contributors

angel-penchev avatar maddie02 avatar simo1209 avatar

intero-server's Issues

[Feat] Print tool

Describe the feature you'd like
Add a button to the toolbar which opens the browser print options for the canvas.

Additional context

  • Reference concept of how the whole view is expected to roughly look:
    Editor

[Feat] Floor plan image generation endpoint

Describe the feature you'd like
Create an POST "/w2fp" (words to floor plan) endpoint, which accepts JSON in the following format:

{
   "query": string
}

It should pass the query text through the generator neural network, scale the output by 10x, replase squares with furniture and respond with the final image.

[Deploy] Development and production environments using Docker

Describe the type of the deployment you'd like

  • Create a development Dockerfile for intero-api
  • Create a development Dockerfile for intero-web-client
  • Create a docker-compose configuration which starts intero-api, intero-web-client and a PostgreSQL database
  • Create a deployment Dockerfile for intero-api
  • Create a deployment Dockerfile for intero-web-client

Additional context

[Deploy] Container deployment on push to master/release tag

Describe the type of the deployment you'd like
Create a GitHub Actions workflow, which deploys a development container on push to master and a production container on release tag to the Docker and DigitalOcean container repositories.

[Feat] Eraser tool

Describe the feature you'd like
Create a eraser tool, which clears pixels one at a time. Add an eraser icon to the toolbar.

Additional context

  • Reference concept of how the whole view is expected to roughly look:
    Editor

[Feat] Editor view

Describe the feature you'd like
Create a EditorView component and add a canvas within with an aspect ratio of 1:1.4142 (the aspect ratio of an A4 paper) or with the exact resolution of 595 x 842 px (A4 paper at 72 dpi) and a div which will hold the tool buttons for interacting with the canvas.

Additional context

  • To generate a component using nx, use the following command:
    nx g component editor-view --project=intero-web-client
  • Reference concept of how the whole view is expected to roughly look:
    Editor

[Feat] Pencil tool

Describe the feature you'd like
Create a pencil tool which draws only in black one pixel at a time. Add an pencil icon to the toolbar.

Additional context

  • Reference concept of how the whole view is expected to roughly look:
    Editor

[Feat] Socket communication between plotter and server

Describe the feature you'd like
Using Socket.io implement a mechanism which tracks which plotter devices are connecting/disconnecting from the server.

On device connect:

  • Generates a random 6-digit connection code and check if the code is not already taken by another device
  • Store the Socket.io session id with the 6-digit connection code in the plotters database table

On device disconnect:

  • Remove the session id - connection code pair from the plotters database table

Additional context

[Feat] Floor plan generation โœจ tool

Describe the feature you'd like
Create a button in the toolbar, which on click opens a dialog box with a 640x640 empty canvas, a text box and a button for submittion. Upon submiting, a POST request should be made to the "/w2fp" endpoint which will return a 640x640 image. Display the image on the canvas and show 2 additional button at the bottom of the dialog - 1 for accepting the suggestion and 1 for discarding it.

Additional context

  • Refer to #4 for an explanation on how the POST "/w2fp" endpoint is supposed to work.

  • Reference concept of how the whole view is expected to roughly look:
    Editor

  • Reference concept of how the floor plan generation dialog is expected to look:
    Editor - Generate Tool Dialog

[Feat] Ellipse tool

Describe the feature you'd like
Create an ellipse tool which sets the center point on first click and draws the oval with radius depending on the second. Add an ellipse icon to the toolbar.

Additional context

  • Reference concept of how the whole view is expected to roughly look:
    Editor

[Feat] Plot image endpoint

Describe the feature you'd like
Create an POST "/plot/<connection code>" endpoint, which accepts form-data containg only 1 field - image. It should search the database for a plotter with the same connection code, get the session id from there, get the socket by the session id and forward the image on the plotter.

Additional context

  • The following code snippet might be helpful:
    const plotterSocket = io.sockets.sockets.get(sessionId);

[Feat] Plot tool

Describe the feature you'd like
Create a button in the toolbar, which on click opens a dialog box with a 4 digit code input field and a button for submittion. Upon submiting, a POST request should be made to the "/plot/" API endpoint which will either return a 202 Accepted or 404 Not Found response. If the response is 202, change the contents of the dialog to let him know the request suceeded. Otherwise, if the response is 404 - display an error message over the code input field.

Additional context

  • Refer to #6 for an explanation on how the POST "/plot/<connectionCode>" endpoint is supposed to work.

  • Reference concept of how the whole view is expected to roughly look:
    Editor

  • Reference concept of how the plotting dialog is expected to look:
    Editor - Plot Tool Dialog

[Feat] Line tool

Describe the feature you'd like
Create a line tool which starts a line on first click and ends it on a second. Add an line icon to the toolbar.

Additional context

  • Reference concept of how the whole view is expected to roughly look:
    Editor

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.