Non-orthogonal multiple access (NOMA) is envisioned to be one of the most beneficial technologies for next generation wireless networks due to its enhanced performance compared to other conventional radio access techniques. Although the principle of NOMA allows multiple users to use the same frequency resource, due to decoding complication, information of users in practical systems cannot be decoded successfully if many of them use the same channel. Consequently, assigned spectrum of a system needs to be split into multiple subchannels in order to multiplex that among many users. Uplink resource allocation for such systems is more complicated compared to the downlink ones due to the individual users power constraints and discrete nature of subchannel assignment. In this paper, we propose an uplink subchannel and power allocation scheme for such systems. Due to the NP-hard and non-convex nature of the problem, the complete solution, that optimizes both subchannel assignment and power allocation jointly, is intractable. Consequently, we solve the problem in two steps. First, based on the assumption that the maximal power level of a user is subdivided equally among its allocated subchannels, we apply many-to-many matching model to solve the subchannel-user mapping problem. Then, in order to enhance the performance of the system further, we apply iterative water-filling and geometric programming two power allocation techniques to allocate power in each allocated subchannel-user slot optimally. Extensive simulation has been conducted to verify the effectiveness of the proposed scheme. The results demonstrate that the proposed scheme always outperforms all existing works in this context under all possible scenarios.