An interactive mobile application supporting group shopping
The aim of the project is to develop a mobile application called "SyncShop" that facilitates group shopping by allowing users to create, share, and update shopping lists collaboratively. The application aims to streamline the process of organizing group purchases, making it easier for users to plan their shopping trips, coordinate with others, and ensure that all necessary items are obtained efficiently.
The scope of the created product includes the creation of a mobile android application, nodejs server and a database dedicated to it. Many users will be able to use the system at the same time. It will be a simple, intuitive system.
• User Registration: Users can sign up for the system by providing necessary details.
• Password Recovery: Users have the option to recover their passwords in case they forget them.
• Password Change: Users can change their passwords for security reasons or personal preferences.
• Viewing Friend Lists: Users can browse through their list of added friends.
• Removing Friends: Users can remove friends from their list if desired.
• Creating Shopping Lists: Users can create shopping lists to organize their purchases.
• Adding Friends to Shopping Lists: Users can invite their friends to collaborate on shared shopping lists.
• Adding Products to Lists: Users can add products along with their details to the shopping lists.
• Declaring Intent to Purchase: Users can indicate their intention to purchase a specific product from the list.
• Marking Unavailable Products: Users can mark products as unavailable if they are unable to purchase them.
• Marking Products as Purchased: Users can mark products as purchased once they have bought them.
• Browsing User List: Users can browse through a list of registered users in the application.
• Changing User Data: Users have the ability to modify their personal information such as name, email, etc.
• Deleting User Account: Users can delete their own accounts if they wish to do so
• Viewing Error Reports: Users can access and review error reports submitted by users regarding any issues or bugs encountered in the application.
• Kotlin
• Java
• Nodejs
• MySqlWorkbench
MVC - model view controller
Model (Singleton): This class serves as the central model in the MVC architecture. It manages various data structures and is responsible for coordinating interactions between different components of the application. Being implemented as a singleton ensures that there is only one instance of the model throughout the application's lifecycle, promoting data consistency and centralized management.
Api.java defines the interface for web services that the client application can invoke to interact with the server. It's part of the REST client, which uses the Retrofit library to communicate with the backend. Retrofit is an HTTP client library for Android and Java that simplifies creating HTTP connections to RESTful services.
The ApiDatabaseDriver class is used for communication with the server using a REST-based API, utilizing the Retrofit library to execute HTTP requests and process responses. This class contains various methods for login, registration, fetching protected data, creating users, shopping lists, and managing them, as well as other functions related to the application.
This is the page that appears immediately after launching the application. The user can log in, create an account, or recover a password.
The user enters their data and clicks "create account".
Next, a window appears for entering the verification code from the email.
User checks mail inbox
and clicks confirm
Registration completed
The user enters the email to which the confirmation code will be sent.
The user checks their mailbox and enters the code.
Then they enter a new password.
The password change process has been successfully completed.
In the main menu, there are options that the user can choose.
The notifications page is displayed immediately after logging in. The user can accept/delete invitations and learn about new lists they've been added to.
This view allows creating a new shopping list, adding a date, and selecting friends to share the list with.
This view allows searching for people within the application by their "username" and establishing connections.
This view allows browsing the list of friends and the option to remove a friend.
This view allows browsing shopping lists, with the types of lists divided into those created by us or by our friends.
When we want to exit a particular shopping list, a message will appear.
When we want to delete a list that we created, a message will appear.
When we click on "details"...
The main section of the program will open.
The user can check the product details.
The user can also move the product to the "purchased," "planned," or "deleted" sections.
Here, the user can also check the details, delete the product, or move it back to the planned list.
The user can check which products have already been purchased.
The user can change their details and password.
The user can send an error report to improve the application's functionality.
[[ ADMIN SECTION ]]