- Admin back-end: Administrative module, secured against public access, through which site staff/admin can edit all of the core data (db) content of the site. Each admin module should have Add and Edit capabilities (delete is NOT required). At a minimum the admin should have a menu screen (with all the admin modules), and in many cases and original nav just for the admin.
- User accounts: EVERY site needs to have "user" accounts. Most pages should detect whether a user is logged in (or anon), and if so offer customized features or content such as "shopping cart", "your articles", "recent searches", "your To Do list", etc. This requires "sign up" and "log in" pages. Users SHOULD also be able to edit their own information and preferences (through a mini-admin).
- Login/security: All sites must have (user) login routines, session/login tracking, and at a minimum a separate security level/access for/to the admin.
- Paginated results: Your main search/results page/s should separate the results into multiple pages, with a limited per-page result count such as five (which would be five per page), with the results spanning muliple pages (when over the count). At a minimum then your results pages should have (conditional) Next and Previous buttons. Some will choose to also implement (linked) page numbers as well and/or First and Last (page) links.
- Email functionality: At least one module/page should have an email component. This could range from "send this product to a friend" to "email these search results" to "invite a friend to vote for this movie". Any implementation will include a form (for the user to fill out name/email and possibly a custom note), and php code that drafts an email that fills in the recipient (and originator) information, some custom content from the site, and (typically) page-specific hyperlinks to your site.
- Analytics: Add Google Analytics tracking (or other vendor is OK) to your site/pages and generate custom reports (most popular pages, audience profiles, etc.). Besides adding the GA tracking (as early as possible), you should also generate some reports and upload static activity graphics (PNGs from Google) to somewhere in your admin. You can (should) update these analytic graphics the day of the presentations with NO late penalty. You can save the Google reports as PDFs or take screenshots of them to include in an admin page or your project summary document.
- User Behavior Data visualizations: Every site needs to have a data visualization about user behavior (or content). This could be as simple (boring) as tracking all user searches, or repurposing existing data specific to your project such as user ratings of stuff (food truck, movies, etc.). This does of course mean that you will need some user behavior data tables to track/save what they do. The visualization can be on a public page (Top Rated Movies, Most Popular Locations, etc.) or in your admin (Most Active Users, etc.). You will need to create some underlying statistics (most likely through aggregater SQL queries) that are the source/data foe the data vis, but the actual visual/graphic/graphs can be generated through plug-ins (like JS charts). Obviously hand-creating the graphics are extra work. And converting the data to JSON to use would also be extra work (more credit).
- General UI and Design: If not fully responsive, main public/consumer pages should at least be able to work on both a desktop and aphone, even if not optimized for all environments. Obviously the site should have a consistent design, look and feel, etc.
- Extras: Besides the standard/required site elements above, all projects should also have invested time in one or more (NOT all) of the following:
- Extensive db content: All projects will have a baseline of 30 or so core data records. Many of the groups will go beyond that and invest significant time (and resources) into data entry or import of a significantly larger dataset.
- Extensive user customization: While all sites must be aware of a user (when logged in), some projects will invest more development time implementing deep/extensite user awareness/customization across most if not all pages.
- Implementing APIs: Some projects will implement a mapping API (such as Google). The simple side of this will be adding a map and addng location pins (and information). More complex implementations will live geocoding of addresses, proximity searches (all locations within X miles of location Y) and/or boundary searches (locations within custom region/shape). And of course there are other types of APIs and data feeds you could integrate into your site.
- Framework: Site build in back-end framework like Laravel (front-end frameworks like Bootstrap do not count as an extra).
- Custom plug-in/module: Implement a custom php module, plug-in or API.
- Other?: Obviously I am open to pitches for other features that would count as "extras"... bring them up. They might inspire other groups to also do them!