title: When to create a new app within a Django project structure?
body: <p>I have seen other questions on stackoverflow (<a href="https://stackoverflow.com/questions/64237/when-to-create-a-new-app-with-startapp-in-django">When to create a new app (with startapp) in Django?</a>)  and read some slides on the topic but still am a little confused on when to create a new app in a Django project? I am coming over from a MEAN stack and I am new to Django.</p>
  
  <p>If I want to create a web application with the following four main features:</p>
  
  <p>-Register</p>
  
  <p>-Login</p>
  
  <p>-Chat with other users</p>
  
  <p>-Upload files</p>
  
  <p>Will these be 4 separate apps with their own views.py, urls.py, etc.? Or do I create 1 app and they share app files?</p>
  
  <p>It seems that 'apps' in Django projects are described as reusable modules, but these features would only be used once in my whole web application so they would not be reusable?</p>
  
  <p>If I wanted to build two completely separate websites, do I create 2 separate Django projects or 1 project with separate apps inside of it and would reuse an app such as registration?</p>
  
  <p>Just trying to wrap my ahead around how to structure this.</p>
  
  <p>Below is from Django's poll tutorial:</p>
  
  <blockquote>
    <p>Projects vs. apps</p>
    
    <p>What’s the difference between a project and an app? An app is a Web
    application that does something – e.g., a Weblog system, a database of
    public records or a simple poll app. A project is a collection of
    configuration and apps for a particular website.<b> A project can contain
    multiple apps. An app can be in multiple projects.</b></p>
  </blockquote>
  
  <p>The part I bolded confuses me very much on how to structure and when to separate apps.</p>
  
  <p>Any help is appreciated.</p>