The most important part of starting is to be live as soon as possible. In week 1 we will focus on getting our website live. Getting the most minimum working.
We should focus only on minimum needed for a website. Minimum means that we can focus on design later. Minimum means having a production server.
- Create a Django project for a Twitter like collaborative blog. Anyone can register and write a post. A post will have a title and text content.
- There will be a home page, login page and registration page.
- Home page will show latest posts in decreasing order. It will have pagination.
- Write CSS as you need. Don't focus on looks to much. Get the minimum working. DON'T use a CSS framework such as Bootstrap.
- Create a remote server. Use DigitalOcean's or Vultr's $5 droplet.
- Install needed dependencies. Probably, MySQL, nginx and gunicorn.
- Copy the code to remote server. Use FTP or whatever you are comfortable with.
- Follow Django's deployment guide to deploy.
- Follow 6 steps Django Tutorial with the above task in mind.
- Django's documentation is super awesome. Refer it whenever you read about a new Django function or API.
- Use DevDocs or Dash for easy reference to documentation. Keep it always open.
- DigitalOcean is easier to get started than EC2.
- Learn basics of
vim
for easier text editing on remote server. - Follow Django's deployment guide using Gunicorn and nginx. Skip virtualenv on production for now.
- Initially the website will just not start. Keep persisting. Focus on
nginx
logs andgunicorn
logs to trace the reasons. - Configure Django to use SMTP for emails. It will send emails for server errors.