Three membership levels
A free membership and two paid levels, with clearer access rules and Stripe-based billing.
02 / NAIT TEAM CAPSTONE
A real client, a team project, and learning Laravel while we built it.

ABECN was our NAIT capstone project, where our team worked with a real not-for-profit organization to design and develop a website.
There was more to it than writing code. We had to communicate with the client, figure out what the organization needed, put together a prototype, and work through the development as a team.
The website brought together information about the organization, membership, events, committees, directors, resources and sponsors. Some features were already more involved than the websites I had built before, especially the membership signup and payment process.
I helped communicate with the client, took part in our sprint process, and contributed to the prototype before moving into development.
My development work included the moving cards on the website and the Stripe membership signup process. I also researched options for adding an events calendar for talks and seminars, although I can’t confidently name the calendar package I was considering.
Client communication, sprint participation, prototyping, Laravel development, interactive cards, Stripe signup integration, and events-calendar research.
We used Laravel to build the application, but I hadn’t worked with the framework before this project. I needed to get comfortable with how it organized routes, controllers, models and Blade templates while still contributing to the team’s work.
That meant a lot of reading documentation, testing ideas and figuring out how the pieces fitted together. It could be overwhelming, but it was also one of the reasons I enjoyed the capstone.
Looking at the source now, you can see the Laravel structure behind the website: Blade templates for the pages, routes for membership and payment actions, models for members and sponsors, and controllers for managing those features.
One of the parts I worked on was the interactive cards. It sounds like a small feature, but getting something to move smoothly and behave properly within the page layout meant experimenting and refining the implementation.
I liked that side of development. It gave the website a little more personality, and it was something I could work through visually as I tested changes.

The biggest technical learning experience for me was integrating Stripe into the membership signup process.
It wasn’t just a matter of putting a payment form on a page. I had to understand how the application would identify the selected membership, collect payment details and create the subscription.
The project includes a Stripe payment controller that looks up a membership and creates a subscription through Laravel Cashier. There are also billing and profile-related pages in the application.
Working on this gave me experience connecting a Laravel website to a third-party payment service. It also showed me how much more there is to account for when handling memberships rather than a regular contact form.
The original application contains a Membership model, a PaymentController that creates subscriptions, and billing-related routes. This describes the original implementation—not a claim that the historical payment flow has recently been retested.
The completed project files show several features beyond the pages people can see without signing in. These include member authentication and profile editing, membership information, a searchable member directory, sponsor listings, and administrator tools for managing users and sponsors.
Those were team features, and I don’t want to imply I personally built each one. They show the scope of the capstone and how the different parts of the application needed to work together.
The events page existed in the original project, but the calendar was still a placeholder. My calendar work was research rather than a completed calendar integration.
This project pushed me outside of what I already knew. I learned a new framework, worked with other developers, communicated with a real client, and dealt with an integration that took more figuring out than I expected.
I came away with a much better understanding of how a larger web application is put together. It also made me realize that I enjoyed working with PHP and Laravel more than I expected.
The original capstone is still something I want to keep as part of my portfolio, including the parts that are unfinished. They’re useful reminders of what I learned and what I’d approach differently now.
I’d like to revisit ABECN as a separate Laravel modernization project. These are ideas I want to develop, not features I’m claiming were included in the original capstone.
A free membership and two paid levels, with clearer access rules and Stripe-based billing.
An actual events calendar, registration, paid-event access, and voting that depends on membership level.
More useful member account tools, receipts, and a dashboard for administrators to manage users and website content.
Admin-led forum discussions, quarterly newsletters, dedicated donor profiles and board-member information.
The existing project is a historical capstone. These modernization features are proposed enhancements and should not be treated as delivered functionality.
ABECN was a different challenge from my independent client projects. Working with a team meant keeping track of the bigger picture, while learning Laravel meant regularly stepping into unfamiliar code.
It wasn’t always straightforward, but figuring out the moving cards and Stripe membership process is exactly the sort of challenge that made me want to keep developing.
This link leads to an older Laravel capstone demonstration. Please don't enter personal information or make real payments on the historical site.