Objective: Shed some light on what fullstack and a few other nebulous terms mean.
Another term for a fullstack is a solution stack. The word solution implies a problem, so what is the problem? Creating dynamic websites that offer pleasing aesthetics, ease of use, the ability to not only take in data, but also to create it, and finally for these websites to be available to millions of people 24/7 is a pretty large challenge. Hence, the solution stack.
A full stack or solution stack is a set of programs and programming languages that work together to make all of the amazing possibilities that we expect from web pages possible.
Database is a much more familiar term and it gives us a really good idea of what is going on. We are talking about a home base for data, a place to store things. Just as much as this is data storage, it is data organization. The most powerful thing about a database is that it makes information easily accessible via very specific questions, or request for desired data. A request of this kind is referred to as a query. Most databases have a querying language, but not all, which is a topic for another lightening talk.
Has anyone ever told you that you're really good listener? Well a server is better :) Server software's role in the stack is to listen for events referred to as 'gets' and 'posts'. These are, respectively, requests and and submits coming from a person using the web. When that person pulls up web page, that is a request and the server hears it, delegates tasks to other software and returns the desired webpage. Similarly, when a person submits a form with information that they've filled in, a server hears that too and makes sure the data gets handled appropriately. Listening and reacting is the servers lot in life.
Servers are also physical things, they are computers set up for a single purpose. Server software runs on servers.
Lets start with an example. When you post a pic to Instagram it can be automatically posted to your Twitter account without any further action on your part. This is because these two web apps share the same Application Program Interface, the Twitter API. An API can be thought of as a set of standards and protocols that established expectations for programmers to work with. Organizing data into standard formats, sharing libraries, and using similar structures make for great collaborations between apps. This is some of what an API offers.
A frame work is also a set of standards and protocols, but directed towards the back end. Think of it like a house. Every house is going to have at least several essential things in common. A kitchen, bathroom, bedroom, living room and wiring and pluming to make it all function. This is exactly what a framework is. It sets up a file structure, or scaffolding, and makes all the necessary links/connections within the stack of programs that are being used to build an application. From there the programmer has a great start and will customize the whole thing to suite their project needs, without having to do the nitty gritty of setting up basic functionality.
MVC stands for Model View Controller. Lets think about a basic blog. The Model in MVC is the make up of the sites functionality. In this case an admin who writes the posts, users who can read and comment, the posts themselves. The View is how all this is shown to the user. The main section for posts, a menu of all posts, a comment section, etc. Finally the Controller unites the two, apply the function to the page for a dynamic web page.