Suppose my team is going to develop a system similar to Facebook. Should I put all modules in one jira project to track the development? That seems too much. In practice, how many modules should I put in one jira project?
The rule that I apply is that each Jira project equates to 1 software product. This lets you to effectively use the Releases, versioning (Affected Versions, Fix Version), and Components features of Jira. Rather than thinking about your product's modules, think about releasable and deployable entities.
We can take Facebook as an example. If I was designing a Jira system for Facebook, I would likely consider their Android app and iOS app as two separate Jira projects. The web gets a little tricky. There's some consideration for architecture and release process here. If your front end and backend are tightly coupled, then that may be one project. On the other hand, if you have APIs that are shared across your Android, iOS, and front-end web applications, then that could potentially be 4 projects in Jira.