Color + Social = Colial. A social platform where status updates are just colors.
This was a small project I did for one of my courses to demonstrate competency of PHP. Thus, this project is definitely feature-incomplete. My hopes are that this project can later inspire me or someone else, or as a learning resource.
The development of this project was an avenue for learning myself, in that I was able to expiriment with technologies I had been watching for a while, but never had a good use case.
See the frontend readme for a few more screenshots.
The backend is a custom REST-like API structure written in PHP.
For more information, see the backend readme.
The frontend is a React application written almost completely in JavaScript (with React/JSX and modern JavaScript extensions, via Babel).
For more information, see the frontend readme.
If I am to revisit this project in the future, there are a few different ideas I feel are worth considering to make this project better:
- Using an actual PHP framework, i.e. Laravel
- Writing the frontend in a different framework, i.e. Angular
- Put in place a linter to keep code consistently formatted
- A more thought-out design
- Adding more features (of course)
To run Colial, you must have any kind of setup that includes:
- A relatively new version of PHP
- A running MySQL server
- The PDO extension w/ the MySQL PDO driver
- The
mod_rewrite
Apache module
This setup can be easily achieved using XAMPP.
Also, to bundle the frontend, you must have:
- a recent version of Node.js (v6+)
$ cd frontend/
$ npm install
$ npm run build
And that's all there is to it! The build
npm script just calls webpack on the project.
Output files will be in the dist/
directory in frontend/
.
Copy every file in:
backend/
frontend/dist/
to your server. With XAMPP, this would be the htdocs
directory.
A description of the (notably small) database structure can be found in
backend/internal/doc/databse.md
. I appologize for not
providing a simpler method of recreating the databse, i.e. a .sql
file. The MySQL databse should
be named colial
.
Make sure Apache and MySQL are running, and you should be good to go! Simply access your server
(http://localhost/
) and you should see the application running.