Final Project
Design and implement a web application of your own with Python and JavaScript.
Released | 2022-07-18T00:00:00-04:00 |
Proposal Due | 2022-07-25T23:59:00-04:00 |
Status Report Due | 2022-07-30T23:59:00-04:00 |
Due | 2022-08-04T23:59:00-04: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 in limited cases 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 or web-staff@cs50.harvard.edu
Requirements
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 Python packages that need to be installed in order to run your web application, be sure to add them to a
requirements.txt
file!
Beyond these requirements, the design, look, and feel of the website are up to you!
You may, but are not required to, collaborate with a maximum of one other student in the course on the project, if you’d like. Both of you must still submit individually all milestones of the project (rather than one person only submitting them on behalf of the team). If you do work with a partner, the expectation is that your project will be twice as large as a solo project would be expected to be.
Proposal
Gradescope will not permit you to submit your proposal until 2022-07-20T00:00:00-04:00.
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.
Complete the below no later than 2022-07-25T23:59:00-04:00:
- Go to CSCI S-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!
Status Report
Gradescope will not permit you to upload your status report until 2022-07-26T00:00:00-04:00.
Complete the below no later than 2022-07-30T23:59:00-04:00:
- Go to CSCI S-33a’s Gradescope page.
- Click Final Project: Status Report.
- Complete the questions there and submit.
You should see a message that says “Final Project: Status Report submitted successfully!” Contact your teaching fellow if not!
Implementation
Gradescope will not permit you to upload your implementation until 2022-07-31T00:00:00-04:00.
The deadline for completing the below steps is 2022-08-04T23:59:00-04:00:
How to Submit: Step 1
Fill out this form.
How to Submit: Step 2
Gradescope does have a soft file size limit when uploading (if it times out, Gradescope will reject it). We recommend your ZIP be no larger than 15MB if at all possible; you can probably help trend it in this direction by, if needed, omitting any large assets like images and any datasets that your project requires. At an absolute minimum, and only if none of the above options work, you may upload just your README.md
file to Gradescope. Ultimately you must have something uploaded to Gradescope before the deadline for your project to be accepted. You can then share the remainder of your project directly with your TF out of band of Gradescope (e.g. via GitHub, Dropbox, e-mail, or Google Drive.)
- Download a ZIP file containing your implementation of the final project.
- Go to CSCI S-33a’s Gradescope page.
- Click Final Project: Implementation.
- Drag and drop your ZIP file to the area that says “Drag & Drop”.
- Click Upload.
You should see a message that says “Final Project: Implementation submitted successfully!” Contact your teaching fellow if not!