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).
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 →