Do first two steps for whole project at the beginning to get a full picture, then repeat all steps for each supreme system component/service. In case of large team with different tech stacks - each team (or just a team member in smaller teams) might be responsible for a single component of the system: auth, profile, news feed, settings, back-end, UI/front-end, testing, etc.
What you are asking for is called a Software Development Life-cycle (SDLC). Below I tried to provide short review of the whole process:
- Business analysis, UX engineering, specification writing, building UI kit and instructions, designs of each page, breakpoint and state itself (I am not going to go deep into design process itself, you may get more about it in this awesome answer)
- System analysis, team analysis, trend analysis, competitor analysis, how it is done elsewhere, tech-stack selection, research and basic benchmarking also might be done here.
- Software design, what 3rd party tools and APIs will be used, what components system will have and how they will communicate with each other.
- Data structure and database design - how exactly you are going to store data, where, what will be SQL table structure and relationships, UMLs or basic DB diagrams
- Software Architecture - detailed design of each component and their relationships, diagrams, flow charts, documentation, API/Header/Interface-driven development - imagine how your own ideal API would look like so you would enjoy using it before it is written. For myself or for collaboration I'm using Google Drive docs and draw.io, basic stuff is just sketched on the paper and for simple apps there is no need in diagrams.
- (Optional) You may use here Test-driven development (TDD), writing tests before code, providing test-cases, use-cases and instructions how system will be tested. For most new projects and small teams I would say you don't need to TDD, especially in startups and other environment where requirements might change too fast. However, having basic test plan is a must-have.
- (Optional) DevOps, server installation, configuration, administration, orchestration. Depending on the team size and predicted high load on the system. For beginning and for small projects lead engineer might do it himself on the company's server or in a cloud/VPN, for example, using DigitalOcean for 5$/month, MailGun for outgoing emails for 10k mails/month for free. AWS can also be used here for both. For bigger bandwidth and more complicated infrastructure AWS, Azure, Google GSuit (previously Google for Business) and other clouds. You must have detailed description of whole infrastructure, deployment instructions, codes/passwords in a single secured place. You must have plan for failover, backups, load balancing, scalability in the future, etc.
- Software engineering - implementation itself, local environment and dev environment set-up, Git repo set-up, giving access to team members, considering using some task management systems. Trello, Slack GitLab issues, GitHub issues (my prefered and most simple way, even users can create there bug reports) might be used, JIRA for larger teams with experience, Asana, etc. Build/compilation process set-up. Framework, library writing/configuration, each component, all services, set-up of all the 3rd party services and APIs. It consists of UI (front-end) engineering and back-end engineering. In the ideal situation design with 1) GUI kit and 2) instructions - should be ready before UI engineering. And for back-end it is required to have at least layouts ready and index page (or main screen) fully UI programmed. It is recommended to do a pair-programming and code-review.
- Software testing (QA) - Checking that implementation does what specification says. Detailed test plan and check-list development, testing every single part of the app on different platforms which should be supported. Automation testing might be considered here (Unit testing, System/End2End/App/Browser testing). Checking that system is secure, reliable, emails are sending/receiving, logs are writing, exceptions are logged, handled, notifications sent to responsible persons, database transactions are used, etc.
- (Optional) Technical audit - in the ideal situation someone else (in corporations it might be other companies) should just do a project-level "code review". Something like QA for QA done by a someone who was not evolved in the project development at all. Are there no hacks left by engineers. Is software compatible with international standards like ISO 25010, is software accessible, does software fits the market and local law, etc.
- Release, deployment and bug fixing - after everything is done, set up production and staging environments, release first public version, set up all the required 3rd party services and apps like Facebook App for login, Google App for using G+ auth, Google maps, etc. Test everything on production again. If some 3rd party apps requires approval, for example to using Facebook location, friends and other scopes - you should record videos, explain how you are using each scope and submit the app for approval. Invite test users. Make changes in the system according to a feedback or new requirements, fix found critical and serious bugs. Launch.
- Maintenance, support, documentation - finally, just keep the system healthy and operational. If there is no documentation, write it and keep it up-to-date. Set up monitoring, all the critical dev notifications, test backups time-to-time, check logs, clear logs, keep fixing bugs and making small changes. In future when new requirements will come, repeat the whole process again. Maintenance also means keeping following the trends and updating all the dependencies, frameworks and even OS kernel, packages to the latest versions.