A report book as a service.
During the traineeship every trainee has to write regular reports. Those have to be approved by a trainer or the person in charge of the trainees. This software helps writing and organizing the reports of the trainees. It also simplifies the process of approval of those reports for the trainer.
# Clone the repo
$ git clone git@github.com:Jimdo/reportbook.git
# Install composer and project dependencies
$ make bootstrap
# Set the following variables in your .env file
MYSQL_ROOT_PASSWORD
MYSQL_DATABASE
MYSQL_USER
MYSQL_PASSWORD
# Build docker image
$ make build
# Build docker image with xdebug
$ make build-debug
# Start server
$ make server
# Make server setup
$ make setup
# Run unit tests
$ make tests
Make sure your launch.json looks something like this:
{
"version": "0.2.0",
"configurations": [
{
"name": "Listen for XDebug",
"type": "php",
"request": "launch",
"port": 9000,
//Your project's path in the server
"pathMappings": {
"/var/www": "{{pathToProject}}"
}
},
{
"name": "Launch currently open script",
"type": "php",
"request": "launch",
"program": "${file}",
"cwd": "${fileDirname}",
"port": 9000
}
]
}
The repo contains a Makefile
to help you speeding up your development process.
$ make help
bootstrap Install composer
build Generate docker container image
build-debug Generate docker container image with xdebug
deploy Deploy the app to the wonderland
doc Generate documentation
lint Lint all the code
mongo-client Connects to mongoDB
mysql-client Connects to MySQL
push Push container image to hub.docker.com
server Start up local development web server
setup Setup server
storage-reset Reset local server files
tests Execute test suite and create code coverage report
update Update composer packages
- Basic CRUD operations on the reportbook
- Simple web interface for CRUD operations
- Simple file system based persistence mechanism
- Refactoring into view models
- Add basic validation
- Add error messages to forms
- Add exceptions to
ReportFileRepository
- Implement simple Routing and Controller Framework
- Improvements to the Routing and Controller Framework
- Add
UserService
with basic CRUD operations - Add
UserRepository
andUserFileRepository
- Add bootstrap CSS to interface
- Add
UserService
to GUI - Initial admin user
- Implement MongoDB to User and Report Service
- Implement
ResponseObject
- Implement
ApplicationConfig
- Configure session start via controller
- Implement TraineeId Object
- Implement UserId Object
- Change Namespaces
- Create a Profile View
- Add more Profile Data to User
- Add more edit functions to the User and UserService
- Add Validation to Profile View
- Implement read only Profile View
- Implement ProfileController
- Add Comment
- Add CommentRepository
- Add CommentService
- Add timezone to
ApplicationConfig
- Add CommentController
- Implement CommentView in ViewReport
- Create Event for Notification Service
- Create Subscriber for Notification Service
- Create Notification Service
- Add LoggingSubscriber
- Add Events for ReportbookService and UserService
- Add NotificationService to UserService
- Add NotificationService to ReportbookService
- Add PapertrailSubscriber
- Add PapertrailSubscriber to Controllers
- Add MailgunSubscriber
- Add MailgunSubscriber to Controllers for specific Events
- Add a search function
- Add PHPBench
- Add Benchmarks to Project
- Implement hashing Password Strategy
- Soft Migration of Password Strategy for old Users
- Add PasswordConstraints
- Implement the admin user with special rights
- Implement Category to Report
- Implement Calendar Overview for Reports
- Implement Calendar Year to Report
- Implement sortable Report Overview
- Implement ApplicationService
- Implement Twig
- Implement Medium-Editor to Report and Comment
- Implement new design with sidebar to reportbook
- Implement MySQL
- Implement PrintService to create PDF files
- Implement RepositoryFactory
- Implement ApiController
- Implement WebSerializer
- Implement Mobile View
- Implement NotificationService