NPCs have
a lot of parts to them, but fortunately there are a lot of examples around these days, and tools to help make them. You could check out
Miss Coriel's NPC Creator, for example.
Most custom NPCs use
Content Patcher to add the actual NPC and all its information, and
TMXL to add any custom locations needed for it (like a house to live in), along with using it to place them at festivals or add a custom spouse room. The NPC Creator will take you quite a ways if you use Windows, but you'll probably get used to handling the things it's doing for you over time :)