Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/juliolmuller/poppest
Application in PHP, using Laravel, PostgreSQL and REact.js. The main purpose of this project is to demonstrate general skills developing something amazing as a practical test applying to Ateliware job.
https://github.com/juliolmuller/poppest
ateliware github-api laravel php postgresql reactjs
Last synced: about 23 hours ago
JSON representation
Application in PHP, using Laravel, PostgreSQL and REact.js. The main purpose of this project is to demonstrate general skills developing something amazing as a practical test applying to Ateliware job.
- Host: GitHub
- URL: https://github.com/juliolmuller/poppest
- Owner: juliolmuller
- License: mit
- Created: 2019-06-05T02:22:27.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2023-01-07T05:10:11.000Z (almost 2 years ago)
- Last Synced: 2023-03-05T06:28:59.405Z (over 1 year ago)
- Topics: ateliware, github-api, laravel, php, postgresql, reactjs
- Language: PHP
- Homepage: https://poppest.herokuapp.com/
- Size: 5.17 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 14
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
:star: Poppest - The Most Popular Repositories in GitHub
Lessons Learned |
Technologies |
Environment Setup
![Poppest snapshot](./public/images/app-overview.jpg)
This application was proposed by [Ateliware](https://ateliware.com.br/), as part of their recruitment process for full-stack developer. The challenge was to consume [GitHub API](https://docs.github.com/v3/), searching for the 30 most popular repositories for 5 programing languages of my choice, store the results in a database and make this info available through a front-end interface. The use of a backend framework was mandatory. The final app should also be deployed to a public server, like Azure, AWS or Heroku.
[Check out the application running!](https://poppest.herokuapp.com/)
## :trophy: Lessons Learned
- Communicate to [GitHub API v3](https://docs.github.com/v3/);
- Use an HTTP client package for PHP;
- Build a React app within Laravel environment;
- Use SASS to overwrite Bootstrap standard variables;## :rocket: Technologies & Resources
**Frontend:**
- [React ~~16~~ 17](https://reactjs.org) (with Hooks & TypeScript)
- [jQuery 3](https://jquery.com/)
- [Bootstrap 4](https://getbootstrap.com/)
- [Axios](https://github.com/axios/axios) (HTTP client)**Backend:**
- [PHP ~~7.2~~ 7.4](https://php.net/)
- [Composer](https://getcomposer.org/) (PHP package manager)
- [Laravel ~~5.7~~ 8](https://laravel.com/)
- [~~MySQL 8~~](https://www.mysql.com/) [PostgreSQL 13](https://www.postgresql.org/)
- [~~Ixudra PHP cURL~~](https://github.com/ixudra/curl) (updated to use Laravel's default HTTP client façade)**Testing:**
- [PHPUnit](https://phpunit.de/) (embedded into Laravel)**Deploy:**
- [Heroku](https://www.heroku.com/) (cloud platform)**Development:**
- [PhpStorm](https://www.jetbrains.com/phpstorm/) and [Visual Studio Code](https://code.visualstudio.com/)
- [Cmder](https://cmder.net/) (terminal emulator)
- [Node.js](https://nodejs.org/en/) scripts (with Laravel Mix)
- [Postman](https://www.getpostman.com/) and [Insomnia](https://insomnia.rest/) (platform for API development)## :hammer: Setting up the Environment
To allow Laravel to use you local configurations like database setup and credentials you will need to rename the file **.env.example** to **.env** and update the values for the `DB_*` variables accordingly. Besides, make sure you have a database created to migrate the schemas and data.
You will also need **Composer** and **Node.js** installed in your machine and their `composer` and `npm` shortcuts available via command line.
To set up your server-side environment, use the following commands:
```bash
$ composer update # To download PHP dependencies
$ php artisan migrate --seed # To run migrations and seeding
$ php artisan serve # To start the server
$ composer run test # To run automated tests
```When dealing with the front-end, you must use `yarn` to run the scripts:
```bash
$ npm install # To download JavaScript dependencies
$ npm watch # To keep compiling to 'public/' while developing
$ npm production # For minified bundle for production
```