I want to create a project in which it is required to synchronize local database with remote database. Changes made in local database must be reflected to remote database. This
First of all I'd suggest you reconsider your design. The simplest way to repicate your data is through views as suggested in this SO. You could create a DATABASE LINK between your two DBs and create views at the remote site that would query the local database. This would be the simplest way to have Real-Time synchronization (less code, less maintenance).
If you really want to replicate your data synchronously, you should read the Replication Guide. You could go with materialized views. You will need to define materialized view logs on your tables at your master site. At the remote site you will create ON COMMIT REFRESH materialized views.