Giter VIP home page Giter VIP logo

project1's Introduction

Overview of Project 1

In Project 1, you will build a substantial real-world database application of your choice. This project is split into three parts:

  • Part 1: come up with a web application and design the database on paper using ER-modeling.
  • Part 2: implement your database by translating your model into a database schema and example data.
  • Part 3: implement an application that accesses and modifies your database.

Pick an application that you will enjoy working with, because you will be working on it for a substantial part of the semester! A suggestion is that you build a database about something that you are interested in -- a hobby, a favorite web site, material from another course, a research project, etc.

It's nice if you pick an application where you can populate your database using real data, although it is not necessary. As the project progresses, you'll end up creating a database of at least dozens of entities/relationships. If you can get real data to populate your database, it does help a bit, but again it is not needed.

Summary of Deadlines

  • 9/14: Find team-mate in class or on Piazza to find one.
  • 9/21-28: Meet with course staff to discuss your application and design. This is a required meeting.
  • 10/3: Submit Part 1
  • 10/17: Submit Part 2
  • 11/14: Submit Part 3

Note: you can only use late days for the project description submisson, not for finding a teammate nor for meeting with the staff. Please read the Project Lateness Policy carefully.

Getting Help

We strongly suggest you use the following approach when you encounter bugs. This is basically what professional software engineers and data scientists do:

  1. Use Google or StackOverflow by searching for the error message (the Internet is your friend!)
  2. Look for previous answers on Piazza
  3. Ask on Piazza including:
  • what you're trying to do
  • describe the approach you took
  • the error message
  • what solutions you've tried
  1. Ask the staff

Teams

You will carry out this project in teams of two. If you can't find a team-mate, please follow these steps:

  • Post on Piazza asking for a team mate - the best way.
  • Send email to Qi right away (and definitely before Fri Sep 16th at 5 PM) asking her to pair you up with another student without a team-mate. This is not recommended because you will be randomly assigned a team mate.
  • You do not need to notify us of your team composition. Instead, when you submit the first part of your project, please write the name and UNI of both members.
  • See Part 1 for a contingency plan to protect yourself in case your teammate drops the class.

Important notes:

  • If you decide to drop the class, or are even remotely considering doing so, please be considerate and notify your team-mate immediately.
  • Do not wait until the day before the deadline to start working on the project, only to realize that your team-mate has dropped the class or moved to another planet. It is your responsibility to start working on the project and spot any problems early.
  • Please check the Collaboration Policy web page for important information of what kinds of collaboration are allowed for projects.

Programming Environment: Python

We ask you to use cloud-based technologies for the projects, we will give instructions on how to set up later, you don't need it for part 1. You can work on the project using your own machine, or some other environment. However, the course staff can only support the enviroment we are providing.

GitHub

One drawback of using a cloud computing platform is that it is difficult to open GUI text editors such as Sublime Text to write your code. We recommend setting up a version control system for your project, such as git on GitHub, so your team can share code. This way, you can code on your desktop, commit your changes, and pull the updated changes on your cloud virtual machine.

Flask Python Webserver (For part 3)

We will use the Flask Python webserver in this course. It is a lightweight webserver that requires a minimal amount of understanding of how the webserver framework is implemented.

We strongly recommend reading the following documentations:

Computer Accounts

If you would like to use Columbia's unix machines for this course, you will need a CS account. You can open one from on the CRF webpage: and choose the appropriate "student" category as the account type

There is a $50 charge to open a CS account. Please refer to CRF's homepage for details on infrastructure and policies of the CS department.

project1's People

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.