Hi, I've had a rather ambitious project on my mind for as long as I've been at my job (almost a year) -- to pretty much rewrite their central application, which is a listing database/"portal", around and upon which their entire IT infrastructure and web and computing tasks and operations are haphazardly based. What they have is in ASP.NET, and their developer is not even logical and has little to no knowledge of their business model, and this "Sales Portal" is still buggy after two years in development and active use... Not to mention that the company is trying to cut costs all over the place and making more of a mess. Therefore, I am greatly inspired to do it better. It's nothing advanced. I believe Django is the way to go.

Thing is I'm a complete newbie know-nothing when it comes to Python or Django in practice. So I want to learn by embarking on this project, yet I'm unsure of how to start it in terms of structuring; for example, should the listing DB and UI be a Django "project" or Django "app"? It is integrated into their public-facing website, which I would like to expand my Django endeavor to include (they don't even have a CMS, everything's static, we use FTP, it's totally archaic and they think it's fine but it's wildly disorganized of course); but so this is where I get confused as to how I should structure the project ("project"?). It needs to be scalable to multiple sites, which are mostly pretty different from one another. The admin UI I would like ultimately to make like an intranet with roles and permissions. The sites also have outside members on the frontend.

I hope I'm making enough sense here... but so what would be a solid scalable structure for something like this? Where should I start? Rather, I should start with the listings/"Sales Portal", and go from there. But where should that go? Am I just thinking too far ahead..? At the very least, should this Sales Portal be an "app" or a "project"? (I'm leaning towards app.)

I really want to try learning this way because it's a practical application that I know most of the requirements for, and they're diverse enough to give me a broad introduction and help me see how to connect things on different levels. Advice/info of any kind is highly appreciated.

Dani AI

Generated

Short answer: treat the Sales Portal as a Django app inside a single Django project that holds shared settings and site-level wiring. Apps make the listing logic, models, templates and URLs portable so you can reuse or mount the same functionality across multiple sites later; the project is just the container that ties apps, settings and deployments together. As already suggests, get comfortable with Python and the official Django tutorial first — then build a small, working vertical slice.

Practical starter plan (small, repeatable iterations):

  • Create a repo and an isolated venv, add a minimal project and one app called listings.
  • Design the core models (Listing, Company, Status, etc.), add migrations and admin entries, then build one complete flow: create → edit → list → search → permissions.
  • Use namespaced app URLs, app-specific template folders and simple tests. Aim for an end-to-end MVP before expanding features.

Example layout to keep things modular:

project_root/
  manage.py
  config/
    settings/
      base.py
      dev.py
      prod.py
    urls.py
    wsgi.py
  listings/
    models.py
    views.py
    templates/listings/
    urls.py
  accounts/
  cms/
  static/

Notes on multi-site, auth and rollout:

  • For multiple, mostly different sites keep shared logic in apps and handle site differences via per-site settings, template overrides or a tenant/site field on models. Multi-tenancy adds complexity — avoid it until the core app is stable.
  • Define a custom user model at project start if you expect to extend users. Use groups/permissions for roles and plan object-level permissions if needed.
  • Migrate legacy ASP.NET data incrementally with ETL scripts or a syncing API, keep a staging environment, and maintain backups and automated tests. Use the Django admin to prototype quickly but build a dedicated intranet UI for day-to-day users.

For : start small, ship a usable slice, get feedback from users, then generalize into multiple apps/sites. This minimizes risk and teaches the framework while delivering real value.

start by learning some python on http://learnpythonthehardway.org/book/
then you'll find the VERY useful to learn how django works

django documentation is amazingly written

also take a look at on how to start a django project the right way, i'm also a newbie and i found it very useful

commented: good help! +14
Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.