There are 2 known ways to tell where you stand with a given NPC.
Your "social tab" on your character page (indicated by number of hearts ranging from 0-10, up to 12 for your wife/husband)
The color of the circle under the NPC's portrait when in conversation:
Blue = 0 hearts
Green = 2 hearts
Yellow = 4 hearts
Red = 6 hearts
Purple = 8 hearts
Purple Star = 10-12 hearts
There are 2 ways to raise affinity with NPCs: Gifts & Quests.
The number of gifts, per NPC does vary (when giving a gift the NPC loves, it can take anywhere from 25-28 gifts to reach 8 hearts and 30-34 to reach 10. If the NPC is a marriage candidate, you must present them with the bouquet before they can move from 8 to 10 hearts). There appears to be a multiplying effect if a gift is given on the NPC's birthday.
Quests will appear in your mailbox or on the bulletin board in town. It is currently unknown how much quests influence an NPC's affinity.
Events occur when an NPC reaches a certain level of affinity (typically ranging from 2 to 10 hearts, depending on the NPC. It is currently unknown if there are events after 10 hearts, in the event of marriage.)