Final Project

This Final Project serves as a culmination of your learning in Computer Science Principles, JavaScript, Python, GitHub Pages frontend, and Flask backend. By building a project, you will apply programming fundamentals and explore the impacts of computing through a topic of personal and social relevance, such as Pilot City or Open Coding Society.

You will demonstrate your skills in:

  • Software Engineering Practices: Planning changes, using checklists, tracking progress (burndowns), writing commented code, and building help documentation.
  • Software Development Lifecycle Practices: Source control, forking, branching, building, testing and verification, pull requests, and merging/integrating.
  • Retrospective Engineering Practices: Presentations, live reviews, demos, code reviews, and revising plans.
  • Data Types: Numbers, strings, booleans, arrays, JSON objects, and SQLite tables.
  • Operators: String operations, mathematical operations, and boolean expressions.
  • Control Structures: Iteration, conditions, nested conditions, try/except, and .then/.catch.
  • Input/Output: HTML5 input, validation, and working with the Document Object Model (DOM).
  • Classes: Writing classes, creating methods, instantiating and using objects, calling methods, using parameters, and handling return values.
  • Deployment Practices: DNS, Docker, docker-compose, and nginx.

This project is your opportunity to showcase your growth as a developer and your ability to apply computer science principles to real-world problems.

Project Planning

During the project weeks and checkpoints, you will:

  • Create Issues to Describe your project and plans, including who is assigned, expected goals, and stretch goals.
  • Build a Help system to guide current and future engineers working on the feature. Use the search system of the project and categories. Give yourself credit as author.
  • Develop Individual Blog to show personal expertise in project.
    • Show depth by featuring Design documents
    • Show contriubtion by highlight PRs and Commits
  • Create a LinkedIn page and feature projects.

Checkpoint Schedule

Development weeks:

  • Be sure to have a goal focused on testing.
  • Be usre to have a goal on UI workflow improvements.
  • Be sure to have a goal on the backup and restore of data.
  • Set and achieve at least one milestone each checkpoint, continuing the iterative cycle of development.

Blog

Throughout the final sprint, you will update your personal blog to describe your project, expertise, and plans, including both expected and stretch goals. Your blog will serve as the central point for communication with your instructor.

Key Events:

  • Finals Week -1
    • Monday: Demo your team’s custom level to the teacher.
    • Thursday: N@tM (Night at the Museum) showcase at 6pm.
  • Finals Week
    • Monday: Show LinkedIn page, Blog, and Analytics
    • Final Day: Instructor completes final.