Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

General Discussion

Chad Goldsworthy
Chad Goldsworthy
4,209 Points

Language suggestions for a potential software?

Hello fellow learners :) I work at a dinner theatre, every night they re-organise the tables to fit the bookings, sometimes there are a bunch of large 15 seaters, sometimes a lot of small 2-3 seaters, and sometimes a mix of large and small. I want to learn a programming language with the end goal of creating a software that can take inputs of amount and size of tables, and output the best suited layout to fit those inputs. They currently make floor plans using a to-scale diagrams that shows the tables as black blocks, either a single square table or a collection of square tables put together to form larger tables. The tables are angled and evenly spaced around the floor in a way that not only fits everyone in, but does so in an even distribution. The theatre sits 80 people.

I'm hoping some more experienced developers can suggest the best suited language for such an application? I think it's best to learn a new language with an end goal in mind, and I'd like to learn a language with the end goal of creating this software. I thought about using machine learning to teach the program how to think about the best possible layout, but surely there is a slightly simpler way of doing it... Ideally I would like to eventually create a software in which one could tell it X amount of tables, each with their specific amount of people, and the software would output a diagram showing the best possible layout.

I would really appreciate any input on suitable languages and tools to get me started on this journey!

Brendan Whiting
seal-mask
.a{fill-rule:evenodd;}techdegree seal-36
Brendan Whiting
Front End Web Development Techdegree Graduate 84,736 Points

Do you imagine people using this software on their phone or on a laptop or desktop? How complex is the logic that they current have to organize the tables? Are you looking to replicate the same logic (just faster, less error prone than the manual way) or are you looking to create software that optimizes the way the tables are being organized, better than they are right now?

Also, is this a one time calculation that doesn't need to persist anywhere (kind of like using a calculator), or will they need to share these floor plans with others, save them for later?

1 Answer

Chad Goldsworthy
Chad Goldsworthy
4,209 Points

It would be for a laptop, mac preferably. I am just wanting it to be done automatically, rather than a human having to sit for hours creating layouts based on their experience of fitting tables into the space previously. I am looking to replicate the same logic as is done by a human yes, just faster but also for better organisation. I think the guy who does it often does it in a way he is familiar with that isn't always the most efficient. So the software could create layouts based on input from previous diagrams but also be able to create new ideas and placements that haven't been done before. It would create a diagram that would then be printed and shared amongst the company, it is used for the waiters/kitchen/floor manager/etc so it would be shared I'd also like to eventually extend the software to be used for different rooms. This company has a couple other theatres throughout the country, and I'd also potentially like to market the software to other restaurants, in which they could put in their own room dimensions and measurements of tables and create their own diagrams specific to their space.

Brendan Whiting
seal-mask
.a{fill-rule:evenodd;}techdegree seal-36
Brendan Whiting
Front End Web Development Techdegree Graduate 84,736 Points

I think the Front End Web Development track is a good place to start. You might find that intricate floor plans are a little tricky to build with just html components, so it might help to use a vector graphics tool like Adobe Illustrator or Sketch to create svgs, and then use those inside your html. I recommend also starting off with a bit of Wireframing. You can make simple prototypes, either on paper or with something like Balsamiq, put them in front of your users and make sure that you have the right idea before you go do all the work of coding it.