That's exactly how I have my home network configured. Had it for many years actually.
There's a Linux box that is the central point of the network. It has several network cards: one for the cable modem, another for the WiFi access point, another for the local LAN.
On the cable modem, I just get an IP address via DHCP from the provider.
The WiFi access point is connected to the server via a loopback Ethernet cable actually. There's no need to use a switch when there are only 2 devices connected. Also, in this setup, there's no point to use a WiFi router - a simple WiFi access point is much better. The Linux server becomes the router.
The third network card goes into a switch that connects all the local LAN.
The Linux box does NAT for all the networks behind it. Also runs a local DNS cache and stuff like that.