You can start by offering multiple tracks for the users:
- Quickly build a Computer
- Build a budget Computer
- Build a performance Computer, etc.
You can create your own guidelines as to what aspect will be awarded how many points in each track to balance the things around. Have a limited set of parameters which you will measure, and keep the parameters visible to the user so they know what they are aiming for. This also helps you motivate the user in any particular direction, incentivize particular behaviors. Mind you, the formula might not be straightforward and will need tweaking around.
You can use the track records to give out Experience points to the users and let them level up. You can use a tiered leveling system where there is a single leveling system (from novice to super-user or something) and then you have 'specializations' which are basically the tracks you offer. You can create a leaderboard from the experience points, and if you do not want to do a traditional one, you can do something different like:
- Contextual leaderboard: you only see a few people who are ahead of you and behind you. (Works well if the community is small and people know eachother)
- Temporal leaderboard: the leaderboard is reset every couple weeks/month. The top players are then archived somewhere else for record viewing or something.
Finally, for the gifting mechanism, you can have 'events' where you set a criteria and people work towards that. Say, 'build a performance computer under 1200$' of something. Try to create a level playing field and keep changing the theme of the event so people with different specializations can be accommodated across events if not in every event.
Goal of the gamification should be allow enough options so the user does not feel restricted, yet, keep enough rules to allow them to visible progress in the system.