This paper proposes a general scheduling model that extends job-shop scheduling models to incorporate important features of real manufacturing systems. More precisely, each operation can be performed in different modes and requires a different set of resources depending on the mode. Further, we consider blocking constraints that requires to hold resources used for an operation till resources needed for the next operation of the same job are available. A shortest path approach extending the classical geometric approach is proposed for the two-job case. A greedy heuristic is then proposed to schedule N jobs by considering jobs sequentially, grouping scheduled jobs into a combined job and then scheduling it and the next unscheduled job using the shortest path approach. A metaheuristic is then used to identify effective job sequences. Extensive numerical experimentation proves the efficiency of our approach.