Advice on Where to Start with My App - google-apps-script

I'm a relative beginner using Google Apps Script and JavaScript, but I've been playing around with bot for days now and I've created a few simple programs and I'd really like to try and get started on my dream project, even if it takes me forever. I'd like some advice on what I should use in terms of making the UI and what database I should use to hold the information (and if this app is even possible).
The App
I'd like to create an online novel management app that utilizes Google Drive as it's source for files. The UI would have a tree that showcases all the google drive files in the novel. When a scene is clicked, the scene opens up for editting.
Questions
Is this app a possibility?
If so, in terms of a UI, what do you think I should use? The google
provided UIbuilder? The HTML service - for example, can I have a
frame on the right that the google doc that needs to be editted
can open up in on the right?
Lastly, what database should I use? The database would have to store
chapter names and positions, as well as scene names, positions,
and the google doc ID that the scene corresponds to. I've got a
handle on ScriptDB and Spreadsheets... And if either of these two
aren't the best option, would some other database work better? And
why?
This app will, hopefully, be able to give an overview of a novel in tree form, allow you to open a particular scene and edit it, create new scenes, and also change the order in which the scenes are displayed. And then when the person finishes their novel, the app will compile all the scenes into one novel (also in google Drive).
Any insight or suggestions would be greatly appreciated!

Having a look at the questions you recently posted I think I have a pretty good idea of what you are trying to do and it looks like an exciting project... I can only encourage you to start it as soon as you can even if you're not comfortable with all the tools you will need to use, the best learning method is probably to work on something important to you.
Now your 3 questions : 1 - This is perfectly doable in the GAS environment and shouldn't be too hard to go through.
2 - the GUI builder is an easy way to start with UI but it lacks a number of features and tools that you will be needing (tree for example ) and is not so easy to expand if you ever need to. Depending on your knowledge in html, the choice is mainly between UiApp and html service... I would choose UiApp because I'm not good at all in html (but that's not relevant here ;-) but both are capable of building what you want, are easily expandable and not too hard to debug. The advantage could go to html service if you are going to look for 'nice looking features' because it opens the door to 3rd party tools... but again, this is a matter of personal choice.
3 - A recent post from Mogsdad showed that spreadsheet are faster than scriptDb for data storage and manipulation. I find it also easier since I can have a global view on data in the spreadsheet when debugging. Of course Spreadsheet must be considered as a container and data manipulated at array level to benefit from maximum performance. I use that in a lot of database application with full satisfaction.
Sorry for these "general considerations" that don't comply to sto standards ;-)

Yes, it seems that all of the things you are requesting are not too ridiculous. I recommend sticking to Google services because they are all easily integrated. To start off, you may want to use the UI builder/UI services. There may be a point in this project where you may want some functionality that the UiApp doesn't provide. At that point, you might want to switch over to HtmlService.
My answer is the same for the databases question. You might want to use a spreadsheet for your database so that you will be able to easily edit it by hand if you need to. You may not have the performance that another database would give you, but it will be fairly easy to test and mess around with your spreadsheet "database."

You could start out with getting the basics down. There's a serious amount of data out there. I would suggest you research on an "as-needed" basis. Design some work-/dataflow patterns for your app, for which you could try to use the Fluid UI extension for Chrome. Have a look at this from Mozilla on the designing of apps.
When you've gone through this you might want to have a look at Phonegap and the basics of web development and how you could combine the two.
There's also several ways of using/storing data. You could try WebSQL though it they no longer develop it. You could look at IndexedDB. You could try to use cookies.
Seriously, have a look around. You might also like the books of Wrox. They're very informative and have great work with reading demo's. Though the books are huge ;)

Related

Making a dynamic schedule view that brings data from remote webpage

I'm trying to make a view with Swift on Xcode that shows the schedule of an event day.
The problem is that, while I'm trying to make the schedule dynamic, so that it changes depending on the data from a website, the way to do so is elusive.
For example, if there already is a schedule posted on website, what could I do so that the schedule showed on the app changes depending on the schedule on the website?
Or, as an alternative, could I maybe bring data from a google doc that lists a schedule to be shown on the schedule view of my app?
Merely using a webview and linking the website page isn't good enough, as it would be no better than posting a link on the app.
I know these are very broad questions, but I was wondering if the community has better ideas to offer, or some efficient ways to carry out those two aforementioned procedures.
Yes. Using WebView is a lazy method and is not efficient.
The best solution to do this is by scrapping the data from that website. There are lots of scrapping libraries available for many languages. Usually called HTML DOM parsers. I prefer this one: http://simplehtmldom.sourceforge.net/ It's built on PHP. Though its name says "simple", it's very powerful. Read their docs. These scrappers read data from HTML code and parse based on certain rules like id, class etc. You can then convert this data to JSON/XML and then use it in your app
Before doing this, check whether that website has any sort of API

How to database iOS app data and display it on a webpage

First time post here, so forgive me for any bad etiquette/format.
I will preface by saying:
I have (over the last few months) been developing an iOS app for work. To be more specific, I am developing an inventory app to track bar inventory (liquor, beer, wine, etc). I can give more specifics on request if needed. I have most of the functionality done, only a couple more things I would like to implement. Eventually I will be porting it to Android as well.
At the moment, I have the model objects being archived to the local filesystem for saving and loading of data. However, my goal would be to database the model objects with the ability to display the information on a webpage. My logic is that no matter where the user is, he/she will be able to sign in to a service using a username and password, and view correctly formatted current/past inventories online. This is to allow the ability for a bartender to record the inventory, and have the bar manager view the inventory instances without having to have the physical device that recorded the inventory in his/her possession.
So here is my question:
Without being too general, what kind of service would I need to pull this off? I have a good amount of relevant front-end experience, specifically with iOS, Objective-C, HTML and CSS. However, I have ZERO experience on the back-end. I have researched around the internet, and I am aware of things such as cloud databases, web hosting and MySQL, etc. However, I cannot seem to find a definitive answer without asking my specific question. I suppose I would just like to be pointed in the right direction before investing money and time into a service that may prove useless to my cause.
Any resources and help would be greatly appreciated. Thank you!
There's not a definitive answer and you have a lot of options.
For me, the simplest is to set up a server with a database incorporated (mysql for example) and with a web service (written in PHP for example) that manages the database and queries on that.
Online you can find tons of guide on how to write a script in PHP that manages a database:
http://www.freewebmasterhelp.com/tutorials/phpmysql/2
For the iOS part you can follow also this guide:
http://www.techrepublic.com/blog/software-engineer/create-your-own-web-service-for-an-ios-app-part-one/
Good luck!

Google Search Sitemaps

Does anyone know of any good tutorials that would show me how to create a sitemap similar to the image below. I can't figure out how to add the different sections underneath like the Your Account, FAQs, etc.
Any help would be extremely helpful. Thank you.
google search for instagram
What you want is what Google calls Sitelinks.
The process is automated and it's not possible right now to create them but you can manage them with the Google's web master tools. The algorithm used by Google to generate them is not public.
You can try this: http://www.xml-sitemaps.com/, or just google 'xml sitemap generator'
I remember that what happened (in my 'previous' life, when I had to take care of all the gory details of our company site) I just followed google's recommended seo suggestions. It was painstaking and slow, but over time when we started turning up at the top of sear results, that exactly how google presented us. It pulled relevant information on it's own and created that nice display. Looking at my old codebase I don't even see a sitemap file there. But I do remember using one of those online generators and then hand turning it a bit.

How to make software features more visible to users?

We have released a beta version of our software, and as we talked to people who started using it, we have found that a lot of the features (which we thought were essential) were not known and not used by the users.
What are the possible ways to inform the application users about the features of the application? I personally find the "Tip of the day" popups extremely annoying and disable them quickly. Are there better ways?
It depends on the: features, application, platform and users.
There is no magic usability dial that you can just turn or button you can just push.
Even within the above there may be multiple ways that a feature can be made more discoverable but it the right one(s?) may be dependent upon how much flexibility you have. In that you've just released the app to actual users, I'm guessing that you're not in a position to restructure the app or make dramatic changes to the way it is architected to improve discoverablity.
This is why usablity testing (with real users) should be started early (in the development process) and done often.
If you can provide a more specific example of a feature that you want to make more discoverable then you may get a more sepcific answer. And if you ask it at https://ux.stackexchange.com/ you may get a better answer still.
Issue a "changelog" with new releases, that will show as part of the installer wizard in a "readme"-type dialog.
Yes, tips of the day can be annoying and are often turned off, but try a one-time dialog when the newly-updated program starts, with a summary of new features.
Extensive help documentation, including a series of "How Do I" articles.
Use icons with ToolTips to attract attention to new menu options/buttons/features in the first version they're released.
People often seem dead-set against learning the software they use on a daily basis. Most office-type jobs require regular use of MS Office, but I doubt very many could even tell you how to create an Excel chart without fumbling their way through it while doing so. The best you can do is make the learning resources available.

How to build a programmable website?

I'm developing pretty normal, non-brilliant Web 2.0 applications, like blogs, forums, social networks, etc.
APIs, mashups, greasemonkey-like works are okay for developers. But for end-users, my websites can't provide something more than a-gazillion-paper magazine. I want my users to create their own program logic to create information, access to data and communicate each other based on their own way.
The most advanced programmability on the websites are all about "Show 20 results per page", moving GUI elements around or changing colors of design.
Is there a study or do you have an idea to make websites allow their users to manipulate/create application logic, data structure, access methods both in client-side and server-side easily?
Thanks!
Please accept my apologizes for poor English, I'm not a native speaker.
Short answer, no. Long answer, not yet but this is probably a long term goal of web development overall. There are some "build your own web apps" web apps around but none of them go much beyond your simple description.
The most useful thing I have come across is something called pyjsglade:
http://sourceforge.net/projects/pyjsglade/
Which lets someone build a web gui in an IDE which then automagically turns into a webpage with full AJAX capabilities. It doesn't do everything you want but it's worth a look certainly.