Fall 2018 CS418/518 Project - Milestone 1
Midway Report: October 2th
Final Demo: October 16th
NOTE: Future assignments will have a much shorter delivery period
The course project will have students build a social media websiteon which asynchrounous conversations can be had between users.
The project will be broken down into four milestones, where a milestone will consist of requirements to be met by each student's
Each milestone will have a set of "Base Requirements" and possibly "Get Ahead" requirements. Students only need to be concerned
with meeting the Base Requirements for the milestone's deliverables. The Get Ahead requirements must be met for the milestone
after the milestone in which they are defined (e.g., Milestone 1's Get Ahead requirements will be due as part of Milestone 2),
so students can opt to begin working on these if time permits.
About half way through the milestone (see the CS518 Course Homepage for
due dates), a midway status report will be presented in class by each student. This report will consist of a 2-3 minute presentation
(slides optional) describing the planning done by the student to meet the milestone's requirements, preliminary design strategies,
the status of development, and any further information to signify that progress is being made. A demo is not necessary but
screenshots are encouraged. This presentation will be worth 2 of the 25 points for the milestone. You will get 0 of 2 points if
you are not present, fail to show progress, or do not attend your peers' presentations. Even beginning to think about the problem
or develop design is considered progress, so long as you show it in the midway status report.
The four milestones' and midway presentation dates and deadlines will be defined on the course website.
Project Milestone 1 - Basic Operations
This milestone is the first step in building a fully-operational social media site. Your first task is to build the basic
framework for the site. The topical focus of the site's questions is up to you (e.g., it can be a site about cars, dogs, programming,
etc.) but the functionality must meet the milestone's requirements. Refer to your favorite social media site for functionality and
ideas of topics.
Your topic does not need to be original.
- The social media site should have a set of "groups" to which users can be members including a "global" group to which all users
are members. (For this milestone, they can be pre-existing.)
- The web site must provide a web page that allows a registered user to post messages in a variety of existing groups.
- Users must be able to log into your web site using the course users list.
There is no need to implement new user registration.
- The user login process must use the HTTP POST method.
- Messages/posts shall be stored in a MySQL database with a reference to the poster and in the appropriate channels.
- The message submission interface must minimally use HTML forms and use a text entry element of the user's choice, and a submit button.
- Displaying the messages should include the posting user, message, and time of post.
- Posts should be sorted in reverse order of posting time and in the appropriate group.
- The site should include -- at minimum -- a set of groups, a messaging display area, and a message posting area.
- The home page for your web site must provide links to the other groups and the history of chat messages posted by all users in each group.
Optional Requirements (Get Ahead)
- Users should be able to add "reactions" to posts
- At a minimum, users should be able to provide :+1: and :-1: reactions
- Users should not be able to add duplicate reactions
- Posters should be able to reply directly to posts (creating a sub-thread) instead of simply posting to the open forum of a group
- Users can create groups
- Users can invite members to groups
At 3:00pm on the demo day, a script will clone the GitHub repository a listed on the
course groups list that resulted from
For credentials to connect to your database when developing, use:
The home page for your web site must be located in a file named "index.php". In addition to the files for the web site,
you should also provide a backup of your MySQL database for importing for your project demo. This can be accomplished in
the phpMyAdmin Export tab. The resulting file should be a .sql file. This file will be loaded into a MySQL instance on demo
day, so verification of the integrity of the dump (i.e., try to import it using phpMyAdmin) is encouraged. Include this file
in the root of your project repository as milestone1dump.sql. At least 10 questions and 5 users should be included in the dump.
We will use a Docker-based deployment scheme on demo day. This system will be equipped
with the latest PHP, mySQL, and Apache versions. The instance will also expect the milestone1dump.sql and index.php files to
be in the root of your project repository and will assume you used the above credentials for interaction with your database.
Per the syllabus), a brief writeup detailing how each requirement was met, design
decisions, programming tricks, and helpful resources consulted is required to be submitted as a hard copy on demo day.