This example project structure demonstrates how to keep code, configuration, and documentation cleanly separated in a professional environment.
At the top level, project-wide configuration files (.gitignore
, eslint.config.mjs
, docker-compose.yml
, etc.) and automation hooks (.husky
, .github
) help maintain consistency and streamline collaboration.
Source code is organized under src/
, with a clear split between the client (React frontend) and server (Express backend). Within the server, responsibilities are divided into logical folders such as models
, routes
, controllers
, and middleware
, making it easier to test, maintain, and scale the application. The scripts/
folder holds setup or migration utilities, while tests/
ensures that client and server code are validated separately.
The docs/
folder highlights a key best practice: treating documentation as part of the project itself. Subfolders like research
, design
, requirements
, `archi