This is a simple ticketing application meant for use with customers to communicate issues with whomever is admin for the site. The main goal for this application is to be lightweight and to be fast to both deploy and run.
Users when joining need to be approved by an admin before being able to do anything, the reason for this is to prevent spam and to prevent people making multiple accounts for whatever reason.
There's an admin view and a user view where users can only see their tickets and create new ones, while admins can see all users and all tickets.
If you want to help, feel free to make a PR and help out with this. If you do help out I will add you in the list of contributors.
No email support currently, mailers are still WIP.
Delete action doesn't work currently, working on a fix right now. The default way Amber handled CSRF tokens was through JavaScript so I'm looking into an alternative or see if Amber has another way to access CSRF token handling.
These instructions will get a copy of this project running on your machine for development and testing purposes.
Please see deployment for notes on deploying the project in production.
Add your logo to public/logo.svg
Add whatever CSS to public/
and change the reference in src/views/layouts/application.slang
This project requires Crystal (installation guide).
To start your Amber server:
- Install dependencies with
shards install
- Build executables with
shards build
- Create and migrate your database with
bin/amber db create migrate
. Also see creating the database. - Start Amber server with
bin/amber watch
Now you can visit http://localhost:3000/ from your browser.
Getting an error message you need help decoding? Check the Amber troubleshooting guide, post a tagged message on Stack Overflow, or visit Amber on Gitter.
Using Docker? Please check Amber Docker guides.
To run the test suite:
crystal spec
- Fork it ( https://git.materialfuture.net/MaterialFuture/ticketing-app )
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request
- @materialfuture Konstantine - creator, maintainer
- Minimal CSS
- Very minimal JavaScript
- Restrict views based on roles (ie admin, user, potential others)
- Users must be approved by admin
- User signs up
- Admin gets email of new user
- Admin sees on dashboard the list of unapproved users and can take actions
- Email system to let admins and users get updates on their tickets
- Emails on ticket status updates along with new comments
- Ticket features
- Comments for tickets
- File uploads for tickets