Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/matronator/starterpack
Starter template for Nette projects with custom CMS
https://github.com/matronator/starterpack
cms cms-framework content-management-system nette nette-cms nette-framework starter starter-project
Last synced: 3 months ago
JSON representation
Starter template for Nette projects with custom CMS
- Host: GitHub
- URL: https://github.com/matronator/starterpack
- Owner: matronator
- Created: 2021-01-01T15:10:55.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2024-08-01T08:56:46.000Z (6 months ago)
- Last Synced: 2024-09-30T14:00:00.023Z (4 months ago)
- Topics: cms, cms-framework, content-management-system, nette, nette-cms, nette-framework, starter, starter-project
- Language: PHP
- Homepage: https://cms.matronator.com
- Size: 2.48 MB
- Stars: 1
- Watchers: 0
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
Awesome Lists containing this project
README
# How to start a project:
## Install dependencies
Run `composer install` and `npm install` commands in the root folder of the project
## Prepare the data layer
Create database and run SQL in `/init-db.sql` or import it via database admin (phpmyadmin/adminer/...)
Connect database in `/app/config/config.local.neon`. Provide database name, login and password.
## Set your environment variales
Create `/.env` file and set `HOST` with URL where the project is hosted. (see [example](https://github.com/motdotla/dotenv#usage)). This step is necessary if you don't use `npm run serve`. Otherwise, you can go with the defaults.
# Build process
There are two basic modules - front and admin. Use `./dev` and its respective subfolders to create or edit front-end assets. Here is an example of the folder structure:```
/dev
|-- admin
| |-- (same structure as front)
`-- front
|-- images
| |-- photo.jpg
| `-- chart.png
|-- icons
| |-- mail.svg
| `-- arrow.svg
|-- css
| |-- index.js
| `-- contact.js
|-- js
| |-- index.css
| `-- contact.css
`-- etc
```All assets are compiled into `/www/dist` folder. For every module subfolder with its name is created.
Keep in mind that files in `images` and `etc` preserve their original directory. Other files (css, js, icons) are generated into the root. For example in `app/components/Hamburger/Hamburger.css` you should reference external images as follows:
```css
.hamburger {
background-image: url(images/hamburger.svg);
}
```## Development
Run `npm start` if you want to develop the front module. For the admin module use `npm run start-admin` command.
Whenever a file (except `etc/*`) in `/dev` folder or template is changed, the web server will automatically refresh your browser window.
### Admin module
The `init-db.sql` file imports one default user with admin rights that you can use to login to the administration. You can change it or create a new one in the administration on the Users page.
E-mail: `[email protected]`
Password: `changeme`
**DON'T FORGET TO CHANGE THE CREDENTIALS BEFORE DEPLOYING ON PRODUCTION!**
## Production
Run `npm run build` if you want to create production build of the front module. For the admin module use `npm run build-admin` command.
# Asset usage
Because of cache busting, the only way of using your assets is by means of `{asset}` custom Latte macro. It accepts two parameters. First is an asset name and the second is a module name (front or admin).
Examples:
```html
...
```
Currently, the macro doesn't take `$baseUrl` into account, so **the server must host to the domain root**
# Coding standard
## Javascript
Formatting is handled by [Prettier](https://prettier.io/). Standard is enforced by [ESLint](https://eslint.org/) rules (see `eslintConfig.rules` in `package.json` for a reference).
## CSS
Formatting is handled by [Prettier](https://prettier.io/). Standard is enforced by [Stylelint](https://stylelint.io/) rules (see `stylelint.rules` in `package.json` for a reference).
## PHP
WIP
# GIT
All commit messages must be written in English in present tense.
Run `npm run lint-css` and `npm run lint-js` before you commit to check if your code adheres to the coding standard. It automatically fixes problems with formatting. Issues which cannot be solved automatically are displayed to the console.