I want to create online wallet without storing user private keys.
This definitely is doable. You might simply want to do this with JS or PHP.
Then just host it and open source the code.
For example - I have full Bitcoin node, user sends to server his private key(via https) just to sign transaction or view his balance.
The signing and address generation should be done on the client side.
Your server should only be providing the required information (balances of given addresses, service to push the transaction, ...).
Is there any way to do it ? any ideas ?
Besides all sensitive information always being processed client-sided, you'd need to create your backend which interacts with the core node to retrieve the information.
Blockchain.com (previously blockchain.info) basically does that with the exception that they are storing encrypted copies of the private keys.
The better approach regarding security would be to not store these information on the server (e.g. like MEW with a wallet file / seed).