|Issue date||Monday, 16 September 2019, 23:59|
|Team Formation Deadline||Monday, 23 September 2019, 23:59|
|Proposal Due||Monday, 30 September 2019, 23:59|
|Progress Report 1||Monday, 14 October 2019, 23:59|
|Progress Report 2||Monday, 28 October 2019, 23:59|
|In-Class Progress Report||Monday, 4 November 2019, 18:30|
|Poster Session||Wednesday, 13 November 2019, 23:59|
|Final Report||Saturday, 23 November 2019, 23:59|
Since you have all survived the first half a semester of CS3216, you are now an expert in both Facebook application and Progressive Web App development. The Final Project is where you will showcase to the world (and the CS3216 teaching staff since the Final Project is what will mostly determine your final grade) your creativity and talents.
For the Final Project, you will work in teams of three or four (fewer is also allowed) to develop and deploy an application (Facebook, mobile, or otherwise) of your choice. You are allowed to team up with anybody you want (and mutually willing to work with you). You may also work with external parties. Please update your groupings on the wiki by 23 Sep 2019. Each team is to submit a project proposal by 30 September 2019 (Monday immediately after Recess Week) and the teams are expected to work on the Final Projects during the second half of the semester.
Your team can design the whole application, but if the scope is too large to be completed in one semester and you intend to continue to develop your application for a business venture, you can implement a prototype with some basic (or limited) functionality to satisfy the requirements for the class. Please state such intentions clearly in your proposals. The teaching staff will evaluate your proposals carefully and provide you with our feedback within a week.
There are no limits on what students can do for the final problem, though the expectation is that it must be a “cool” application or product. The following are possibilities:
- A real-time HTML5 game
- A FB Messenger / Telegram bot
- A new e-commerce application. This can be the basis for a submission to the Start-Up@Singapore contest
- A mobile application. You may choose to build a native app if you like
- An entry for the Microsoft Imagine Cup
- Some amusement – cute and useless, but fun and popular
- A e-learning application of sorts
- An Internet of Things hack
- An application to improve school life, something along the lines of NUSMods / NUSWhispers?
The possibilities are endless. If you plan to develop a social networking application, you are expected to deploy your Final Project at least two to three weeks before the end of the semester because the “proof of the pudding is in the eating”. You should get real people to use your applications and the popularity of your application can be (but is not the only) criteria for the evaluation.
If one of the apps you developed for one of the previous assignments turned out be to very popular (i.e. has lots of users or a high growth rate) or has perceived potential, you may also choose to further develop it as your Final Project. The only minor complication is that you might be “locked in” to work with same team members. We leave you to sort such things out by yourself.
Course Policy on Final Project Groupings
People can be in two Final Project groups. This happens often when someone from an assignment group gets distracted and want to try something new, but cannot really bear to “leave their baby” and still want to be a part of that group. Fair enough.
However, your Final Project grade will come from ONE project, that you will specify/declare right at the onset, i.e. by the end of the mid-term break. There rationale for this policy is that we don’t want people to jump ship halfway and leave others high and dry. With this policy, everyone knows everyone’s priorities. The “extra” members don’t count towards the 4-member limit for a project team.
If you decide to work with external parties, we do not have any official guide on what compensation you should negotiate for. We leave it to you to decide for yourselves what is fair. However, DO NOT work for companies that clearly neither value nor respect you.
Final Project Proposal
Your team should submit a project proposal by 30 September 2019. The proposal should by about 4 to 5 pages (maximum of 6) in length and address (at least) the following points:
- Description of the application you plan to develop.
- Are there any existing applications out there that are similar? What makes your application special? Why did you choose your idea?
- Project schedule: milestones and timeline, including an implementation plan and deployment plan.
- Individual contribution and roles. Contributions and/or support from external partners, if any.
- Long-term plan and business model (if applicable).
- Marketing and strategies to be employed.
- High-level design (e.g. modules, application logic flow, which technologies, i.e. HTML5, Native, Web Sockets to be used).
Development of Final Project
Each team will meet with the teaching staff (probably lecturer + TA) for a one-hour preliminary meeting after you receive your feedback on your Final Project proposal. The meetings will be biweekly. Look out in your emails for the meeting schedules.
These are compulsory sessions where the schedule is flexible and should be determined by both parties.
Customer Contact Reports
We have told you time and again to “go out there and talk to your customers”, and we’re serious. 10% of your project grade will come from your “Customer Contact Reports”. We will provide you with a fixed format template that you will use to fill in your customer contact details, and record of your interactions with your potential users. You are expected to produce a contact report at every consultation session.
Each team will be required to submit a progress report on 14 October 2019. The progress report should include (at least) the following:
- Application prototype. Minimally as functional as what was achieved in Assignment 3.
- Is your project on schedule according to the milestones and timelines submitted in the initial project proposal? If you are on schedule, great! If not, why not? What is your team doing about the slip in your project schedule?
- What were the problems/difficulties your team has encountered? How have you overcome them, or what plans do you have to overcome them?
- Any changes to the application since the initial project proposal?
- Assuming that your team has already deployed a prototype of your application, how has the response been? Any other new insights, plans or strategies your team has come out with?
- Updated project schedule: milestones and timeline.
A second progress report will be due on 28 October 2019. The contents of which would be similar to the first progress report.
Please try to keep your reports to within two pages, or a maximum of 3 pages if you really must.
Final Project Presentation
On 4 November 2019 (Mon), each team will make a presentation to the rest of the class on your project. This session will be another round of peer-appraisal by your peers. Your goal is to convinced your fellow coursemates that you project is really cool and you have done a lot of work and great work. Think of it as round 2 of your innovation seminar, but you are selling your own dog food.
Preliminary Security Scanning
At this juncture (4 November 2019), you should have a preliminary website for your app up and running, even if it is not fully functional. You are expected to provide us with URL and the tutors will be using security tools to scan your site. You will be provided with a security report and you are expected to address the cited issues for your final project. Clearly, if your project is very incomplete, very little will be found, but you then risk more bad things being found after your final project is submitted. We will be doing another round of security scanning after your final project is submitted.
On the last week of class, we will be holding a 4-hour poster session in the SoC student foyer on 13 November 2019 (Wednesday) from 6.30 to 10.30 pm as part of the School of Computing Term Projects Showcase (STePS).
Each team is to prepare an A1-sized poster. The judges and other members of the SoC and NUS will turn up for the “show and tell”. You should treat this session as a trade show to sell your projects as you will get a large percentage of your grading from “other people” - NUS staff, students, alumni, guests - who turn up at your booth. So your final grade depends very much on your show and tell in this session. Be creative. Collaterals are encouraged but note that these will be on your own expenses.
Again, you can choose how you want to present your work. You can bring along other materials in addition to the posters, such as your iPads or set up your laptops to do a demo also. We’ll leave it up to you!
Final Project Video
Traditionally, every team is required to make a 1-minute video to be submitted to the STePS organizing committee. Here’s a playlist of past year’s videos.
As part of the user acquisition process, many teams set up their own Facebook page to publicize about their products and gain initial traction before the actual STePS event. Here’s what the top three teams of AY2015/16 did:
- Letterbox went around the school on a hoverboard and handed out flyers. They also managed to launch their apps to the iOS App Store and Google Play Store before the event (seriously impressive feat).
- Griddit created an anonymous chatroom for NUSWhispers and organized an AMA with Prof Ben Leong which saw over 400 participants.
- Paperbaton launched a blog with helpful tips and also a complementing product, NUSExam, a Past-Year Question Paper Downloader for NUS Students.
These three teams also created Facebook pages to continually engage users. Have a look at the Facebook pages of Letterbox, Griddit and Paperbaton to get a sense of what sort of pre-STePS publicity can be done.
Final Project Poster
The final A1-sized project poster should (at least) include the following points:
- Description of the application you have developed.
- What makes your application special?
- Screenshots, graphics, diagrams and tables. Probably fewer words.
- Prepare a snappy yet catchy 1-2 minute pitch that you can use (over and over) when presenting your poster.
Remember, avoid overloading the poster with too much (small) text. This will ensure that people won’t want to read what’s on your poster. Add in pictures, graphics, diagrams and tables when appropriate. You are there to “sell” people your idea, to make them convinced that your application is unique and creative, and NOT to put them to sleep.
Some examples of past STePS posters:
Final Project Report
Like most other classes, the Final Project report is due on 17 November 2019 (to be uploaded to Coursemology by 23:59 please). The final report should (at least) include the following points:
- Description of the application you have developed.
- Are there any existing applications out there that are similar? What makes your application special?
- Review of milestone and timeline for project (which ones did you hit, what ones did you miss?).
- Individual contribution and roles. Acknowledgement of resources/help provided by external parties.
- Application design (e.g. database schema, UML, etc, no code please).
- Report on the current number of users who have installed, active users, etc. Perhaps Google analytics data and screenshots (or similar analytics tools) to support your claims.
- Future plans and strategies.
- Insights gained from the project. What did you learn from doing the Final Project?
We do not specify a required page length, though we expect that most reports will be about 10 to 15 pages in length. The report definitely SHOULD NOT exceed 20 pages please. Once you submit the Final Project report, you are done with CS3216! Congratulations!
The Final Project is worth 40% of the total grade for CS3216. The Final Project will be graded according to the following weightage:
- 5% Project Proposal
- 10% Customer Contact Report
- 5% Progress Report
- 10% Progress Report 2
- 10% In-class Final Project presentation (awarded by your peers)
- 30% Poster Presentation (awarded by the panel of judges)
- 30% Final Report
The fact that 30% of the grade for the Final Project is determined by the outcome of your poster presentation might make it seem somewhat random and arbitrary, but this mimics life. Success comes not only from how well you do something, but from how well you can sell it (or convince suckers to buy your stuff even if it’s completely useless and they don’t actually need it 😜). This is also where the marketing people make themselves useful. You are graded on quality and relevance of your posters, your sales pitch, marketing collaterals, quality of your apps, etc.
For those of you doing external projects your team is treated as a consultancy. You are graded by how well you manage your consultancy. E.g., frequency of meetings with your clients, quality of questions asked, quality of solutions proposed, and how you negotiate your compensation package. For those doing your own project you are treated as a startup. We assess you on how well you manage your market validation, how well you design your marketing campaign, how you go out and bring in users, etc.
Mode of Submission
The following is the list of deliverables to be pushed to your Bitbucket repository:
- Source code.
- You should also upload a copy of your poster to your repository.
- Proof of working application: You may either (a) Publish the application publicly (in the application settings, untick the Developer Mode); or (b) Add all the members of the teaching staff to the Developers part in the application settings so that we can assess your application (of course you need to add us as your friends first). In both cases, you should provide us with a link to your application’s canvas page.
- Your Final Project report, in PDF format.
Push all of the above to your Bitbucket repository. Not following the submission instructions (e.g. incorrect file naming) will result in deduction of marks.
Clarifications and questions related to this assignment should be posted to the CS3216 Slack channel #ay1920-project.
Good luck, have fun. Live long and prosper!