Want to learn Restful api, don't know where to start - web-services

I'm android developer I'm making app with simple login and sending and receiving messages and pictures. Searching on internet making me really confuse. I don't know where to start and what to use. There are many ways to make and many libraries like node.js php phalcon, asp.net mvc, ruby sinatra etc. I just want to where should i start and what should i use.

Because you mentioned Android, Java has many options for creating RESTful backends. Dropwizard is fairly straight-forward and comes with its own built-in server, which means you won't have to worry about setting that up yourself. Play is another good option. There's a bit of a learning curve with it, but once you figure it out, it has a lot of tools out of the box that help you make REST APIs.
Here's the documentation for Play:
https://playframework.com/documentation/2.5.x/JavaHome
P.S. - This question is likely to get flagged as not being the right fit for SO. You'll probably still get replies, but asking for opinions is something that people will try to discourage you from doing.

Related

Clojure web frameworks for responsive apps

I have recently inherited a non-finished web app written in Clojure, based on compojure and hiccup basically. It's a bad attempt to model some sort of MVC with OO style not in the FP style as seen here . So I bet to re-start the project almost from the scratch reusing the useful parts. I consider these alternatives:
The least breaking alternative would be Compojure+Enlive+jquery-pjax
Using a clojure web framework like Pedestal Any experiences about this?
The initial idea was to implement a RESTful API serving JSON so for the more elaborated solution I have Backbone+react.js in my mind for the front-end and Liberator for the back-end but it's likely to take longer to develop than a traditional server app.
Thoughts and alternatives taking into account that an Ajax experience is required please, thanks a lot!
I'm not sure what is the relation between RESTful API and responsive in your post. However ...
You have multiple options here: Pedestal, Liberator and Caribou.
If all what you need is a RESTful API, then I think Liberator is your best bet and it is not going to take longer time as you mentioned. I don't know how you got that impression.
Pedestal shines if you want to develop Single-Page applications but the framework in general requires a good time to grasp and understand how it is works.
Have a look at Caribou also. It is easy to use and feel familiar.
But again, it is your choice.

Difference between a Desktop application and a Web application

What is difference between a Desktop application and a Web development application? What is Testing Strategy for a web site/web application?
I will briefly share some of my experiences, as they may help establish a foundation for you.
The main differences that I have encountered are obviously the usage of markup languages (HTML/HTML5/XML, etc), AJAX, jQuery, and javascript (well, scripting in general). Tools like .NET framework amongst others also exist. You can look those up to get a full definition of what they are and how they work together, but they introduce a new way of problem solving in terms of building small bridges to reach the end result.
As in any application, keep in mind the user-end side of the application. Millions of people will have access to it at exactly the same time. Security is paramount with web apps. Ensure you have strong security measures tied into your page.
Aesthetics will take more precedence than with desk applications (depending on what they are). Web applications are a visual experience. You want to make sure that when you design it, fields are easily identifiable, the app is easy navigable, and easy to read.
For testing, simply save your code with the right extension and run it from wherever you saved it. Most current Op Systems know what kind of web code the file is written in and will open it in a browser. Say if you wrote "myPage.html" and saved it to your desktop, you will see an HTML icon that says "myPage". If you need to make changes, edit your code, re-save it, then simply refresh your web browser.
I know this is a very very general answer but I'm attempting to brush upon everything that I've experienced over the summer. Hopefully this is helpful, or atleast brings some considerations to mind when designing your web app. Good luck!

Where can I get a website/web application template with user authentication functionality already built in?

I want to start work on a new web application, but I really don't want to re-invent the wheel. I want to make a simple web application that provides some basic functionality, and looks really good. Does anybody know of anything (even if it isn't free) where I could get something that has a good framework laid down already? Where I can have a login/sign up function already built in and ready for use? I have seen a few ecommerce sites that fit the build, but Id have to do a ton of clean-up. I was hoping to find something that was basic, and ready for adding to right away.
I would think that word press or drupal would have something, but I've been looking and haven't been able to find anything.
Thanks!
Try out Thin PHP Framework, it has OAuth built in allow you to login with popular services Google, Twitter, Facebook... or you can use its simple username, password login. Check out the demo here:
http://demo.thinphp.com
website:
http://thinphp.com
Choose your language, there are a lot of different, good frameworks, but you will do best with the language you already know. Wordpress, Drupal, Django, Plone, Joomla, Typo3 are great, and of course they have user authentication.
Looking good is something different, that's design and it is done in CSS. And every CMS or web framework usually has good default CSS templates as a starting point.

What are good resources for learning about the web back-end?

There seems to be a very large deficit of information out there when it comes to web programming. All the resources I can find try are based on teaching you the front-end (HTML/CSS/scripting) in a specific language, but they don't go deep when explaining what is happening on the back-end. Know any good resources?
For example, the replies to the following question contained alot information I'd never get in a "Learn PHP in 30 Seconds!" type book: Why do we need anything more than HTTP GET, PUT, POST?
Edit: An imaginary title would be "What you need to know before building a web app: the language agnostic edition".
This is kind of a huge area. You could learn about any or all of the following:
Server OS: Linux or Windows
Web Server: Apache, IIS are probably the most common, but there are several others
Databases: MySQL, PosGRE, SQLite, SQL Server, Oracle, etc
A backend programming language: Ruby, PHP, Java (various flavors), Python, Perl, C#, etc
A framework: Rails, CakePHP, Zend, .net, JSP, etc.
A CMS: Drupal, Django, Joomla, WordPress, etc.
So you kind of need to narrow down your interests a bit. Once you do, pretty much all of the above have reams of free information available about them on the web. Or go to Amazon and search for one of the above, and you'll find lots of books. I tend to like those by Apress and O'Reilly, but they are hardly the only ones putting out good technical books.
If you can give a better sense of what you actually want to learn about, I'm sure folks can give you good recommendations of specific websites, books, podcasts, blogs, etc.
To get a good understanding of what is going on among other things, using more JavaScript laboratorys such as jQuery and Prototype, I recommend you read the DOM (Document Object Model) This is the main principle for the most part within the web today.
http://www.codeproject.com/KB/books/JavaScript_Programmers.aspx

Web technology for a first small web project

I'm a C++ developer with basic Python skills. Here's the task, a friend of mine is running a small company and he asked me if I can make a website for him. I have no real deadline so I think it's a perfect opportunity to try sth new and do some web development.
User has to be able to add photos, change texts ect.
Do you think that Django would be an overkill for this kind of project? I have no experience with it. Perhaps I should try to customize some blog engine or Google Sites?
You may be interested in Google App Engine (http://code.google.com/appengine) which recently exhibited a rise in popularity. The application runs on Google's servers, eliminating the need to maintain Apache and worry about up-time. You basically get a Django-based solution with a data store, with an SDK which allows you to conveniently develop an application on your desktop and then upload it to appspot.com for everyone to use.
The documentation is great, and even if you eventually decide not to use it, the tutorial is excellent for getting you up to speed on Python and webapp design. There is also a codelab which contains a simple Wiki example.
If you need to set up quickly a very simple website, Wordpress can be the perfect choice.
Wordpress is born as a blogging platform, but in the newer version you can manage pages, contact form and so on. And you can find good plugins to expand its capabilities.
The administration interface of wordpress is clean and easy to use, the page or article editor is simple and powerful. Add an image in a post or in a page is easy and intuitive as in no other opensource CMS I've seen.
Django is a pretty flexible framework, it tends to scale well both up and down. It may be overkill to have to learn the whole API for just a simple site, but if you're looking to learn something new, and have some time to spare, then it's a fun platform to learn and work from. My suggestion would be to install the API and have a play around with it, read the Django book and see how you get on.
Maybe before diving into Joomla or Django a first step should be working with the technologies in a raw, pure way. Create a simple web page that excutes some server side script (python? php?) that retrieves data from a mySQL database and displays it. Throw in a little javascript too. Just so that you feel comfortable with the bare-bones fundamentals.
Then when you dive into the big frameworks and libraries, they won't seem so magical.
If you're really asking what the best tool for the job is, then you are going to have to give a little more detail than "first small web project." If what you are asking is more along the lines of you want to learn web application development and what you already know is C++ and python so what would be a good web application stack where you can leverage your current skillset, then here are some more suggestions.
Django is pretty cool. Every one has already talked about it here. As mentioned earlier, the google app engine is sort of based on Django.
Also, consider zope which is another python based web application container.
If you wanted to leverage your C++ knowledge instead, then consider Wt.
Why don't you take a look at the hello world examples for all three and decide which one looks the most interesting to you?
There are a multitude of website frameworks and kits that you could go with as opposed to starting development work from the ground up. It really depends on what kind of technology you want to go with, and how comfortable you feel with the language's potential. As mentioned above, there are things like Joomla, and If you want to stick to PhP frameworks, you could also use Drupal, which has a ton of documentation and support, and is relatively easy to understand.
If you want to venture into the Microsoft realm, you could look into DotNetNuke. It too is much like Drupal and Joomla, so it's a nice CMS framework, which you might feel more comfortable with since ASP.Net is based off of a programming language as opposed to a a scripting language, unlike Classic ASP or PhP. If you're going to go the Microsoft route, I also recommend taking a look at their BizSpark developer program - but that's more dependent on how serious your friend is on running his site as a business.
Then you also have a lot of things offered up by Google, such as their charts and visualizations -- which doesn't seems like something you're looking for, but for future reference, or cool little things like a map mashup.
It really depends on how much you're willing to learn and how much time you have and sometimes not having a rough deadline is the worst possible thing that could happen. Naturally everything starts to take longer. By the time you're done, the tech is either out of date, or you've taken so long that the business plan has changed.
using django it is easy, there is already an application for photo albums available at http://code.google.com/p/django-photologue/ it becomes with tagging too and maybe you just need to add some jquery effects to get done your site.
To get this done you just create a django project, add the applications to your settings, configure your urls and templates, and thats it.
Also i f you need a small version you can just use this code as a base of your new app.
have fun with django!!
sergio
Pylons is an excellent Python web framework based on WSGI standard. It has ported many of the features of Ruby on Rails so is great for rapid development.
I've been using it for a few years now combined with SQLAlchemy for my database layer and I've found it perfect for development of all my web sites.
It is easily good enough for production sites too.
The one downside I've found is slight complications getting it deployed on shared hosting but as long as you have shell access to your host, you should be fine.
You may try to install and customize Joomla (http://www.joomla.org/) It's full of stuff, easy to use and easy to customize also.
Everybody reaches for a framework, but, assuming this is running on Apache, why not just server side includes, and, since you have Python experience, Python CGI scripts that emit JSON for use in the UI by Javascript. By going with CGI/SSI you defer your decisions about framework and/or templating system until later, when you have more experience under your belt, but you should be able to get a reasonable amount of re-use of whatever Python code you write.
I'll cast my vote for Drupal (http://www.drupal.org)
I think LOVDbyLess might do exactly what you want. If all you need is basic blog and photo upload and a simple SNS, then check out this Ruby-on-Rails open-source thing. It's been evolving with new features and is pretty easy to set up.