Starting my journey in Web Development
My professional career began at Bartolomé Consultores, where I completed my internship after finishing my studies. Thanks to positive feedback from both the company and myself, I continued working there as a Full-Stack Developer.
During my time at Bartolomé Consultores, I developed various web applications, both for internal use and as products offered to our clients as complements to their POS systems. These developments not only optimized revenue and improved the service we provided to our clients but also helped attract new clients interested in our technological solutions.
Within the development team, I had the valuable opportunity to work with two highly skilled senior developers, who taught me good practices and creative solutions. Collaborating with them allowed me to gain a comprehensive view of product development, learn to manage workload efficiently, and experience excellent team communication.
Being part of a small team made me develop strong self-learning abilities, enabling me to tackle challenges independently while meeting project needs and deadlines. This experience allowed me to engage in all areas of application development—Frontend, Backend, Databases, and even UI/UX design—an experience I greatly value to this day.
Projects
The primary business focus of the company was to commercialize POS systems, particularly for the hospitality sector.
Our development team focused on creating various web applications to expand and complement these systems, enabling us to offer a versatile and comprehensive solution to our clients. Additionally, we developed internal web applications to help our technical and sales teams manage client visits, support calls, and track working hours.
Highlights of my development contributions
1. SSO System Authentication
I developed a Single Sign-On (SSO) authentication system comprehensively, designing and building each component to meet the company's needs. The backend was built with PHP, and the database implemented in SQL, connected through a robust RESTful API, which I also designed and developed from scratch. This system allows users to access multiple internal applications with a single login, optimizing both the user experience and employee efficiency, even when accessing applications across different domains.
Additionally, I incorporated the option for Google Sign-On to provide a fast and secure authentication alternative. For all authentication methods, I used JWT (JSON Web Tokens) to ensure session protection and verification within each connected application. The system was built with a consistent and intuitive interface using HTML, CSS, and JavaScript.
Since this SSO setup required handling cross-domain access, I addressed challenges such as third-party cookie limitations, which impact user authentication across domains. Overcoming these restrictions required creative solutions to maintain secure, seamless user sessions while balancing user privacy and security needs.
After developing the SSO system, I integrated it with various existing internal web applications, unifying access and improving employee workflows. This centralized system not only simplified the authentication process by eliminating multiple credentials but also facilitated permission management and access monitoring across different tools.
The result was a solid and scalable solution that optimized internal processes, enhanced cross-domain security, and contributed to a more cohesive and secure work environment.
Tech stack
- PHP
- JavaScript
- SQL
- JWT
- HTML
- CSS
- Bootstrap
2. MyWaiter
One of the most successful web applications I developed was MyWaiter. I created this application from scratch, covering all areas: Frontend, Backend, and DB structuring (entity-relationship modeling, normalization, and SQL). The integration of the frontend and backend with the database was done through an API that I designed and developed, overseeing both its architecture and implementation. Additionally, I managed the configuration of external connections necessary for the app's functionality.
MyWaiter allows users to place orders online. The user flow begins when the end user scans a QR code, which redirects them to the app’s frontend. The application has two main modes:
- In-store orders: for customers physically present at the restaurant. Upon scanning the QR code, the app automatically opens the frontend with the assigned table, allowing table orders to be sent directly to the POS system.
- At-home orders: customers can place orders from home. These orders are also automatically sent to the POS, offering options for pickup at the restaurant or home delivery. MyWaiter has a significant advantage over competitors like JustEat and Glovo, as it doesn’t require the installation of an additional terminal, allowing restaurants to manage all orders from a single POS.
Both modes share common features that make it easy for customers to place orders at their favorite restaurants. Additionally, from the backend UI, our clients can customize the app’s frontend by adjusting elements such as colors, typography, and product presentation. They can also manage advanced settings, such as available products for self-service ordering, ordering hours, promotions, and, for the @Home mode, settings for delivery zones, additional fees, and configuring order queue management, specifying the maximum number of orders the system can process per hour.
I implemented an additional database and API for managing end-users. For authentication, we adopted a secure passwordless authentication option, where users enter a code received via email. We also added the option to sign in with Google Sign-In or Apple Sign-In. User management includes their delivery addresses (essential for the @Home mode) and their order history, allowing them to reorder previous orders as long as the items are in stock.
I integrated an online payment option through a payment gateway (PAYTEF). For this, I created a database that securely stores transaction data and enabled the option to reuse cards for future purchases. From the backend UI, I developed features for issuing refunds (total or partial), allowing our clients to manage refunds easily.
Tech stack
- PHP
- JavaScript
- JQuery
- AJAX
- Google Maps API
- SQL
- HTML
- CSS
3. WebReport
Another of the standout examples of the web applications I worked on was WebReport. The purpose of this tool to provide business owners and key employees with real-time access to sales information generated by the POS system, without requiring them to be physically present at the establishment.
WebReport allows users to view a series of detailed, live reports, including both real-time and historical data. Users can access various charts and key metrics that offer a comprehensive view of the business, enabling in-depth and comparative analysis. Available data includes total sales to date, the amount of cash and card transactions, the number of occupied tables, and other key indicators. I ensured this information was presented in a visual and intuitive manner, making it easier to interpret business performance and trends over time.
The tool was developed using PHP for backend logic and MySQL for data management, with Angular as the frontend framework to create a responsive and interactive user interface. A custom API was designed and integrated to enable real-time synchronization between the POS system and the WebReport application. This technology stack ensured a robust and scalable solution capable of handling continuous data flow and delivering real-time insights to users.
This functionality was especially valuable for strategic decision-making and efficient resource management, providing a clear, real-time view of business performance from any location. With this tool, administrators can monitor the status of their operations anytime, anywhere, accessing both current and historical data for a more agile, visual, and proactive management experience.
Tech stack
- Angular
- PHP
- SQL
Bartolomé Consultores
bartolomeconsultores.com