Skip to content

bristol-su/portal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Logo

Bristol SU Portal

A customisable self-service portal for automating and delivering services online. Explore the docs »

Report Bug · Request Feature

Build Code Quality Release MIT License

Stargazers Issues

Table of Contents

About The Project

The portal is a web-based platform for automating and digitising services. It is fully customisable, allowing for any number of different services to be automated, integrated with current or new systems and deployed.

It uses the concept of a module, a couple of pages that allow us to fulfill a specific action such as filling in a form, uploading a file or photo, making a payment etc. By placing these pages in a coherent process, e.g. upload a file then make a payment, we can build out and mostly automate any existing service. We then benefit from the provides service management tools provided by the portal such as tracking progress, managing user access and automated emails.

For developers, it provides an intuitive framework based on Laravel to create any new modules, allowing you to create new features or integrate with third parties. For example, you may use a CRM to allow users to track their orders. Just create a custom module for the portal to view a users orders, bringing all service delivery to a single place while delegating the business logic to specialised third parties. Its flexible user management system allows you to continue using current data sources with minimal work.

It also comes with a fully-featured API to control users, services, automations and more. When you set up a new service, a custom API is created to allow you to control all aspects of your services no matter what your requirements.

Getting Started

This project is still under heavy development, and is due for release in mid March. Therefore, it should not yet be used in production.

The CLI

The easiest way to get started is to download the CLI.

Sail

  1. Make sure you have docker compose installed (https://docs.docker.com/compose/install/)
  2. Clone the project, install dependencies with composer install and set up the .env file using .env.example.sail as a template.
  3. Set up the environment with ./vendor/bin/sail up
  4. Generate an application key with php artisan key:generate and migrate the database with sail artisan migrate
  5. Access the portal at localhost:8000.

You can also use the following tools:

Make yourself an admin To make your user an admin, you can run docker-compose exec app php artisan user:promote. It will ask for the email of the user you just registered with, and give you full admin permissions.

Create an example activity To create an example activity, run docker-compose exec app php artisan db:seed --class=ExampleActivitySeeder. This will create an example activity for you.

You can, of course, run any command by prefixing it with docker-compose exec app

Non-docker

  1. Clone the package: git clone https://github.com/bristol-su/portal
  2. Install dependencies: composer install && npm install
  3. Setup the .env file: cp .env.example .env && nano .env
    1. The only required environment variables are DB_DATABASE, DB_USERNAME and DB_PASSWORD
  4. Generate app keys: php artisan key:generate && php artisan passport:keys
  5. Run the migrations: php artisan migrate
  6. Build the assets: npm run dev
  7. Serve the site: php artisan serve

You will now be able to register and use the portal. To access the management pages, where you create and manage services, you'll need to run the following command: ```php artisan user:promote``````

Selecting your user and refreshing the page will let you enter the 'Management' account. You can now give yourself the additional permissions in 'Site Permissions'.

Available Modules

Although you're always welcome to develop your own modules to fit your needs, we provide a selection of basic modules to get you started.

Released

Roadmap

The below is a non-exhaustive list of features that will be worked on in the next couple of months. If you fancy taking one on, just let us know!

  • Testing and documentation
  • Progress tracking frontend for users and roles
  • Make services editable
  • Expand permission controls
  • Full API Validation
  • Allow services to be disabled/enabled
  • Logic Group Management Centre
  • Exporting logic groups
  • Syncronising user data with external applications
  • Allow admins to 'view as' participants
  • Notifications
  • Create more actions
  • Custom CSS Controls
  • Sharing third party connections
  • Control language settings and lang files through UI
  • Creating more modules
  • Improve user management system frontend

Contributing

Contributions are what make the open source community such an amazing place to learn, be inspired, and create. Any contributions you make are greatly appreciated.

  1. Create an issue to notify us of your planned changes
  2. Fork the Project
  3. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  4. Commit your Changes (git commit -m 'Add some AmazingFeature')
  5. Push to the Branch (git push origin feature/AmazingFeature)
  6. Open a Pull Request to the Development Branch

See CONTRIBUTING for more information.

License

Distributed under the GPL-3.0 License. See LICENSE for more information.

Contact

Interested in using the Portal in your Organisation? Submit Interest

The portal is currently maintained by ElbowSpace Ltd in partnership with Bristol Students' Union.

To get in touch please reach out to us via [email protected].

Project Link: https://github.com/bristol-su/portal