A Praxis-inspired project for EECS447 final project. By Luke Coffman and Lucas Root.
Praxis is a student project feed where users can browse projects, filter them by desired major, switch session users, and toggle project status when they own a project.
- 3+ tables:
Users,Projects,Organizations,Project_Desired_Majors,User_Project, andUser_Organizationinschema.sql. - 5+ dynamic queries: feed filtering, project feed loading, organization loading, joined projects loading, status lookup, and status update.
- 2+ JOIN queries: the main feed query in
index.phpand the organization/project queries inprofile.phpuse JOINs. - Session usage:
db.phpstarts and maintains the session-backed current user flow. - Database update:
update_status.phpchanges a project's status from open to closed or back again. - No third-party libraries: the app uses plain PHP, MySQL, HTML, and CSS only.
- Open
index.phpand show the Feed and Profile navbar buttons. - Use the Switch User control to show the session-backed current user changing.
- Filter the feed by a major and by text to show the dynamic query behavior.
- Open
profile.phpto show the current user's organizations and joined projects. - Toggle a project status as the project owner to show the database update requirement.
- Reset the feed filters to return to the unfiltered project list.
- Import
schema.sqlinto a local MySQL database namedpraxis. - Set the
PRAXIS_DB_*environment variables if your local MySQL login differs from the defaults indb.php. - Run
php -S 127.0.0.1:8000from the project root and openhttp://localhost:8000in your browser.