ProjectsWritingEverything

Confessions of a CS3216 Survivor

December 10, 2023

CS3216 Software Product Engineering for Digital Markets is an undergraduate Computer Science course at the National University of Singapore (NUS).

Presenting our CS3216 final project at NUS Computing STePSPresenting our CS3216 final project at NUS Computing STePS

This module was FUN, just as I expected it to be. My journey was filled with so many lessons to learn in so little time, ranging across so many things 🙈. In this article, I talk about my experiences with different aspects of the module, including the guest lectures, the assignments and the final project.

Enlightening Guest Lectures

Our weekly guest lectures by product designers, startup founders, software engineers and other influential speakers were super insightful and complemented the assignments and projects we were working on pretty well. We learnt about product design, generative AI apps, teamwork, startup funding, software engineering, scaling up and much more :)

4/10 of our guest speakers— Su Yuen, Umair Ahmed, Lee Li Neng and Stephen Wang4/10 of our guest speakers— Su Yuen, Umair Ahmed, Lee Li Neng and Stephen Wang

The 3 Assignments before recess week

Assignment 1 — Product Design

For assignment 1, my team designed ClubCo, an app to help student club event organizers, with a focus on catering. This idea came from my friend who is a club president complaining about not having a good enough system to find caterers for her events, and not knowing where to go for help.

I made sure to team up with my prior CS3217 teammate, as we both knew we were interested in UX design from our previous project. Also teamed up with 2 other friends, and one had to drop out. This dropping out did not really affect us much for A1, but could be a much bigger issue that some teams may have to face in later stages.

ClubCo’s landing pageClubCo’s landing page

While most of this assignment was a redo of my previous course CS3240 but squeezed into 2 weeks, I had fun working on the newer stuff like the landing page design and the demo video animation. Irrespective of the grade, I did these more for my personal satisfaction, and that was one of the things I enjoyed about this module: exploring what I really wanted.

Assignment 2 — Innovation Seminar

This assignment was to present a cool AI innovation that has not gained popularity yet, and our team chose [Recast](https://www.letsrecast.ai/), an app to convert online articles into short conversational podcasts.

Now as someone who was always captivated by Prof Damith’s short and simple talks, getting to know his secret sauce for presentations in our CS3216 guest lecture sessions was like finding gold 😄. I loved to experiment with the different techniques he taught in my product presentations, writing assignments and even other modules.

Our presentation went well, but later we found out we actually misinterpreted this project a bit. While we thought the main objective was to present our selected innovation as cool, it was equally important to show its limitations. This was a reminder that being critical is more important than defending our selected innovation for A2.

Assignment 3 — Artificial Intelligence App

The myth of recess week

For A3, our team spent a lot of time ideating and proposed 3 ideas on the idea feedback forum but were still confused about what to pick. In fact, our 3rd idea, creating an app that helps you engineer prompts for generating AI images was technically obsolete just the next day with OpenAI launching DALL-E 3, which could create images from very natural prompts.

Then we went back to the 2nd idea we proposed, which was Salary Sage, a salary negotiation coach, but we were only left with 1 week to build it. This week was the most hectic in my CS3216 course, so, no recess week :(

Salary Sage on ProductHuntSalary Sage on ProductHunt

My role in this project was primarily as a front-end engineer and UX designer, and I’m pretty happy with what we came up with in a week. It was honestly super impressive to converse with AI in Salary Sage, even though we builders knew exactly how it works!

The big deal — Final Project

Proposal

After the external pitching session with over 8 products presented, 2 ideas caught my attention, Project Propel and AI Web Designer. As a self-proclaimed frontend expert who just worked on an AI app assignment, AI Web Designer seemed the best choice. Soon after the class, I rushed to other front-end developers I knew to create a strong team that Yangshun (the presenter for AI Web Designer) simply could not refuse 😁. A week later, we were successfully selected for the project, and we called it Artisan!

My portfolio generated using ArtisanMy portfolio generated using Artisan

Artisan is an AI-powered app to generate beautiful websites with a single prompt, customize styles as per your liking and export React code with a single button. Experienced frontend developers can also create customized component libraries, use our section templates directly or contribute their own unique designs to the community!

Our community designsOur community designs

Execution

Okay, we managed to get the coolest idea, but now was the time for the best execution and the most effective sales.

This meant I had to put on the hat of project manager, marketer, external relations manager and backend engineer in addition to my usual roles of UX designer and front-end engineer. Juggling all these roles was tiring (yet fruitful).

Moreover, working on Artisan with Yangshun was a great experience! Learning how senior engineers in my field make decisions and getting PR reviews from him was a learning point in software engineering, apart from the focus on product engineering during the course, plus points for me :)

Marketing for Artisan also meant I had to put myself out there which I wasn’t really used to. Plus, our app wasn’t so great in its initial stages, but we embraced the quote “If you are not embarrassed by the first version of your product, you’ve launched too late”. We talked to our friends, students, profs and reached out to too many online groups to get the word out about our app and gather feedback. This was very useful in refining our app to make it polished enough for STePS.

We also decided to make our lives difficult by organising a portfolio competition with our app. At times, my team would be a bit doubtful about whether our app would be ready for the competition in time. Yet with good prioritization and support from our mentor Yangshun, we made this happen :)

Showcase

“The harder you work, the luckier you get” (Winning STePS!)

This year, my goal was to win STePS as it was probably my last chance at it. Of course, my team shared this goal, so no competing priorities 🙂. While we were considered set up to win STePS as we secured Yangshun’s project (with his track record in mind), that didn’t stop us from working hard to do well.

We planned weeks in advance for how our STePS day would go, and what we needed to get there. One thing I’m super proud of is our shirt design :)

My teammate Jason attracting the crowd to our booth 😄My teammate Jason attracting the crowd to our booth 😄

We put in all the work we possibly could for Artisan, and of course, with all the hard work, I think we deserved to win, even with all the obstacles in our way. And even if we didn’t, I wouldn’t have any regrets as we tried our best. And, after 6 weeks of grinding hard for Artisan, we made it the Best Project for CS3216!

Team Artisan with Uncle Soo!Team Artisan with Uncle Soo!

Just do it

I believed I wouldn’t do well for CS3216, because I am not a good marketer, a good public speaker or even as good a developer as the rest of the class. But at the end of the course, I am super happy with the products I have made, whether I score well or not. Looking back, if I go and read my “What do you hope to learn in CS3216?” Medium article, I see a lot of change in myself. I built apps with great ideas, talked to people to understand what they wanted, created landing pages, crafted pitches, and marketed to literally anyone.

Here to answer your burning questions if you’re looking to take CS3216

  • Is it worth it? Definitely

  • How are the people you work with? Everyone is great and has their unique strengths. Find out if someone has a chance of dropping out before teaming up with them.

  • How is the workload? Too much yet doable if you can focus on it. If you have other priorities, it may be harder to cope.

  • Which one is easier, CS3216 or CS3217? Of course, both are super hard and time-consuming, but I found CS3216 to be more difficult as I had to get out of my comfort zone. CS3217 probably takes up more time but doesn’t require doing a lot of things at once, the only focus is on good Software Engineering.

Thank you everyone!

Ending my super long post by thanking everyone in this wonderful class. Thanks for making this the best course I have taken at NUS! ❤️

Related

Web App

Artisan

AI website generator

Artisan

Web App

Salary Sage

AI salary negotiation coach

Salary Sage

Design

ClubCo

Catering discovery for events

ClubCo

Writing

How to build better AI apps

How to build better AI apps

Writing

Two tech journeys, countless lessons

Two tech journeys, countless lessons

Writing

Joel’s three laws of engineering for scale

Joel’s three laws of engineering for scale

Writing

The story of Stephen Wang, co-founder of Rotten Tomatoes

The story of Stephen Wang, co-founder of Rotten Tomatoes

Writing

One plus one isn’t always equal to two

One plus one isn’t always equal to two

Writing

How to design products that people genuinely love

How to design products that people genuinely love

Writing

Learning product design from an entrepreneur

Learning product design from an entrepreneur

Writing

What I hope to learn in CS3216

What I hope to learn in CS3216
Yuen Jien Soo

Yuen Jien Soo

Assoc. Professor at NUS

Congrats to Charisma Kausar, Jason Christopher, Florentiana Yuwono, Xu Yi for winning the NUS Computing Innovative Prize (iPrize) 2024! Woohoo! Their winning work Artisan is pitched and managed by Yangshun Tay as the final project in SoC Course CS3216 :-). Comments from the Judges: "Very innovative use of generative AI effectively addresses pertinent challenges faced by web developers."

May 14, 2024

Yangshun Tay

Yangshun Tay

Founder, GreatFrontEnd

Introducing Artisan, generate themeable webpages with AI! 🎨 I've long been a fan of Tailwind's approach of writing atomic classes within your HTML. It makes code examples very easy to copy and paste to be used in your own project. Many of my projects these days are built using Tailwind. However, most Tailwind example websites I see on the internet are static and not themeable. I want to see how a particular component or section looks with my custom font, brand color, border radius etc. Over the past few weeks, I worked with a team of NUS School of Computing students Charisma Kausar, Florentiana Yuwono, Xu Yi and Jason Christopher and mentored them to create Artisan (https://www.artisan.land). Artisan is two things: 1) It contains themeable Tailwind examples for components and sections. You can change theme values like font family, border radius, brand color, border width, etc. Sections are built using components (e.g. button, text, inputs) as well, so that the appearance and style is consistent across different sections using the same components. The copyable code samples also use components instead of raw HTML for maximum reusability. 2) AI-powered webpage generator. Enter a prompt and a page will be generated for you, using the available components and sections with a suitable theme. LLMs are used to select appropriate theme configuration and sections for the prompt. You can also continue refining the generated result and change the theming. Like the Tailwind examples, the generated webpage's code is componentized and can be easily copied out as well. Currently, marketing homepage and portfolio websites use cases are supported but more kind of pages will be supported in future. If you're in NUS today, the team has a booth at the School of Computing project showcase and will be there from 3 to 7pm! It's an event you won't want to miss, where you can witness Artisan in action and see how it can transform your web design projects, along with 40+ other cool projects! 🗓️✨ Additionally, there's a Artisan Portfolio Hack competition ongoing where cool prizes can be won! Showcase your creativity and design skills by creating a portfolio using Artisan and amaze everyone with your talent! 🚀🏆 If you're curious about what Artisan can do, try it out for yourself at https://www.artisan.land and watch Charisma Kausar demo the product in the video :) #cs3216 #nus #schoolofcomputing #artisanui #ai

Artisan intro

November 15, 2023