Portfolio. Ignacio Palma


Project overview

Full e-commerce simulation built for a class assignment. Users can browse products, register, log in, search by name, manage a shopping cart, and generate a purchase invoice (boleta).

Rayitas project preview

Tech stack: PHP · Bootstrap 5 · MySQL · JavaScript (session-based cart)
My role: Solo full-stack developer & UI designer.

Narrative: The hero's journey of building Rayitas

1. The ordinary world
I started with a basic understanding of PHP and SQL, but I had never built a complete e-commerce system. My assignment was to create a functional online store, and I felt both excited and uncertain.
2. The call to adventure
The professor gave us the challenge: build a platform where users can register, log in, search products, add to cart, and generate an invoice. No framework restrictions – pure LAMP stack.
3. Crossing the threshold
I decided to go beyond the minimum requirements. I wanted a clean, responsive interface (Bootstrap 5) and a smooth user flow. I mapped out the database schema, page structure, and session management.
4. Tests, allies, enemies
The first major obstacle was cart persistence. When a user logged in or navigated away, the cart would reset. I spent days researching and testing. Another enemy: combining search and pagination without breaking the query.
5. The ordeal & reward
I solved cart persistence using PHP sessions to store cart data across pages. For search + pagination, I built a dynamic SQL query that checks for search parameters and adjusts the LIMIT/OFFSET accordingly. After countless localhost tests, everything worked. The reward was seeing a user register, add products, and generate a real invoice.
6. The return
I deployed the project and presented it to the class. I received positive feedback on the user experience. More importantly, I gained confidence in full-stack development and learned how to break down complex problems into manageable pieces.

SWOT analysis of the project

Strengths

  • Fully functional e-commerce flow (register, search, cart, invoice)
  • Responsive design using Bootstrap 5
  • Session-based cart persistence
  • Clean separation of front-end and back-end logic

Weaknesses

  • No payment gateway integration (simulated only)
  • Basic JavaScript interactivity; could be smoother with AJAX
  • Limited product management interface (admin area missing)
  • No email confirmation after registration

Opportunities

  • Rebuild front-end with React for single-page experience
  • Add real payment API (Transbank or PayPal)
  • Improve UI with micro-interactions and animations
  • Turn it into a real portfolio piece for job applications

Threats

  • Security risks: SQL injection if not properly sanitized (I used prepared statements, but still)
  • Session hijacking potential without HTTPS (deployed on HTTP)
  • Outdated design trends if not updated
  • Competition from full-fledged e-commerce platforms like Shopify

Live project: Visit Rayitas store →