title: Typical AngularJS workflow and project structure (with Python Flask)
body: <p>I am pretty new to this whole MV* client-side framework frenzy. It doesn't have to be AngularJS, but I picked it because it feels more natural to me than either Knockout, Ember or Backbone. Anyway what is the workflow like? Do people start with developing a client-side application in AngularJS and then hooking up the back-end to it?</p>
  
  <p>Or the other way around by first building the back-end in Django, Flask, Rails and then attaching an AngularJS app to it? Is there a "right" way of doing it, or is it just a personal preference in the end?</p>
  
  <p>I am also not sure whether to structure my project according to the Flask or AngularJS? community practices.</p>
  
  <p>For example, Flask's minitwit app is structured like so:</p>
  
  <pre><code>minitwit
  |-- minitwit.py
  |-- static
     |-- css, js, images, etc...
  `-- templates
     |-- html files and base layout
  </code></pre>
  
  <p>AngularJS tutorial app is structured like this:</p>
  
  <pre><code>angular-phonecat
  |-- app
      `-- css
      `-- img
      `-- js
      `-- lib
      `-- partials
      `-- index.html
  |-- scripts
   `-- node.js server and test server files
  </code></pre>
  
  <p>I could picture a Flask app by itself, and it's fairly easy to see AngularJS app like ToDo List by itself but when it comes to using both of these technologies I don't understand how they work together. It almost seems like I don't need a server-side web-framework when you already have AngularJS, a simple Python web server will suffice. In the AngularJS to-do app for example they use MongoLab to talk to the database using Restful API. There was no need having a web framework on the back-end.</p>
  
  <p>Maybe I am just awfully confused, and AngularJS is nothing more than a fancy jQuery library so I should use just like I would use jQuery in my Flask projects (assuming I change the AngularJS template syntax to something that doesn't conflict with Jinja2). I hope my questions make some sense. I mainly work on the back-end and this client-side framework is an unknown territory for me.</p>