Final Project
Design and implement a web application of your own with Python and JavaScript.
Milestones
Proposal Due | 2024-11-24T23:59:00-05:00 |
Status Report Due | 2024-12-08T23:59:00-05:00 |
Due | 2024-12-15T23:59:00-05:00 |
As a reminder, per the late policy in the syllabus, you may not turn in any portion of your final project late and simply have it incur the usual penalty. A late-submitted project (or portion thereof) will not be accepted at all. Furthermore, projects will not be accepted outside of Gradescope, except as outlined under the instructions for submitting your implementation at the end of this specification.
Overview
The final project is your opportunity to design and implement a dynamic website of your own. So long as your final project draws upon this course’s lessons, the nature of your website will be entirely up to you, albeit subject to the staff’s approval.
How to Get Help
- Ask questions on Ed
- Attend office hours
- Email your teaching fellow.
Requirements
Inasmuch as software development is rarely a one-person effort, you are allowed an opportunity to collaborate with one other classmate for this final project. Needless to say, it is expected that both students in any such group contribute equally to the design and implementation of that group’s project. Moreover, it is expected that the scope of a two-person group’s project be twice that of a typical one-person project. A one-person project, mind you, should entail at least equal time and effort than is required by each of the course’s projects. Although no more than two students may design and implement a given project, you are welcome to solicit advice from others, so long as you respect the course’s policy on academic honesty.
In this project, you are asked to build a web application of your own. The nature of the application is up to you, subject to a few requirements:
- Your web application must utilize Django (including at least one model) on the back-end and JavaScript on the front-end.
- Your web application must be mobile-responsive.
- In a
README
file (whose extension can be.txt
,.md
,.adoc
, or.pdf
) in your project’s main directory, include a full write-up describing your project, what’s contained in each file you created, why you made certain design decisions, and any other additional information the staff should know about your project. This document should be sufficiently thorough for your teaching fellow to run your project without any need to contact you further with questions. Take your time, and do not save this step for last. A well-written and completeREADME
file will take longer than you think it will. - If you’ve added any additional Python packages when working on this project that are not part of the Python standard library, If you’ve added any Python packages that need to be installed in order to run your web application, be sure to add them to a
requirements.txt
file, as with past projects. Again, failure to note all relevant packages will impact your correctness score. If unsure as to how to properly format such a file, see the Pip documentation. - You will need to prepare a short video (that’s no more than 3 minutes in length) in which you present your project to the world, as with slides, screenshots, voiceover, and/or live action, ideally with you yourself appearing in the video. Your video should somehow include your project’s title and any other details that you’d like to convey to viewers. See CS171’s tips on how to make a “screencast” though you’re welcome to use a phone or actual camera. Upload your video to YouTube as “public” or “unlisted” and include the URL of the video in your README.md file. Beyond these requirements, the design, look, and feel of the website are up to you!
Proposal
Before you begin working on your project, the proposal is an opportunity for you to run your idea or ideas by the teaching staff. In the proposal, you will describe your project and define your milestones.
Your project may be an extension to Projects 1, 2, 3, or 4, so long as that extension is approximately equivalent in scope to the original project itself and is ultimately approved by your teaching fellow. You are, of course, also welcome to create an entirely new web application for your final project.
Your teaching fellow may approve your project, or request modifications. You may begin working on your final project immediately, but know that your teaching fellow may request changes to ensure your project is of sufficient scope. Feel free to use the proposal as an opportunity to ask any questions you may have about the final project as well. Your proposal, and subsequent adherence thereto, will be the basis upon which your project’s correctness and design are primarily assessed.
Complete the below no later than 2024-11-24T23:59:00-05:00:
- Go to CSCI E-33a’s Gradescope page.
- Click Final Project: Proposal.
- Complete the questions there and submit.
You should see a message that says “Final Project: Proposal submitted successfully!” Contact your teaching fellow if not!
If you are collaborating with another student, it is incumbent on one member of the group to submit on behalf of both members of the group.
If you are part of a group and are not the person who submits on behalf of the pair, it nevertheless remains your responsibility to confirm that you have a submission on file by the deadline, contacting your partner if necessary to ensure they’ve correctly added you to the submission!