This application exposes REST services which perform a number of operations related to a barter platform.
The list of services are :-
- User login, authentication and authorization using facebook.
- List of available items
- Search available items based on most recently added, item location and distance, full and partial keywords.
- View single item.
- Add/Update single item.
- Delete single item.
- Upload images for single item.
- Make offers on items (Barter)
- Get offers for a user
- Get/Update/Delete offers made.
- Member to member messaging between interested users.
- Flag an item for abuse or inappropriate
- Set an item as bartered.
The application connects to the following external sources :-
- Facebook : User login, authentication and authorization.
- Sendbird : Member to member communication.
- Cloudinary : Item images storage and retrieval
The application is designed/developed using:
- Spring : Bean management, DI and transaction management
- Spring Social : Interfacing with FB (and other providers in the future) for user login, authentication and authorization.
- Hibernate : ORM
- Postgres SQL : DB
- Elasticsearch : Powers all searches and item list retrievals
- Jersey : JAX-RS implementation for REST services
- Websockets for notifications