An open source scheduling application, usable and maintainable without an extensive Information Technology department.
Chameleon Business Studio aspires to adapt to its users, changing itself to "blend into" their needs until it supports their vital information systems. Our project provides an open-source scheduling application template that can be tailored to an individual or organization’s needs. After a brief configuration process, the application is usable "out of the box", with Vendia providing data-layer hosting, perfect for individuals and organizers with little technical support.
Participant account dashboard. This is a barbershop example, so someone who owns a barbershop can use this template for their business. Participants would be clients who want to book appointments with barbers.
Participant account dashboard. This is a dance studio example, so someone who owns a dance studio can use this template for their business. Participants would be clients who want to book dance lessons.
Admin account dashboard. A list of users will be provided for the user who can manage all users who are registered for the app. The user can change the role of the users from here.
Booking page. This example shows an example of a talent user booking another user for a haircut appointment.
Booking page showing an admin account who has access to all the appointments on the site. The user can perform operations such as booking other users, unbooking appointments, and viewing who the clients are in each appointment.
Booking page where the appointments appear in the form of a calendar instead of a list as demonstrated above.
Admin panel page where the user can register a new user to the site. The form on the right is used to enter the new user's details and will appear on the table to the left when saved successfully.
Talen account dashboard. The talent account will have a widget that holds information about the event they have configured, in this case it is an Office Hour event with a link to its booking page. It also has a list of upcoming appointments that have been booked to this account.
The first form in the schedule configuration page. The talent account will configure their availability for their schedule to be generated around.
The second form in the schedule configuration page. The talent account will configure their event or service details for their appointments.
TODO add instructions for setting environment variables
-
Make sure you have Node.Js installed in your local machine
-
At the time of cloning the repository, if you go to ChameleonBusinessStudio/angular-app and there is no directory called /node_modules
- First change directory to /angular-app
- Run the command
> npm i
- You should see the /node_modules installed in the directory
- Run the command
> npm install -g @angular/cli
to install Angular CLI globally - Lastly, install typescript by running the command
> npm install -g typescript
-
By then, hopefully all the error messages are gone now
-
Also, since we will be using most of the styles and component from @Angular/material it is important that we import and make use of the UI Package
- Once everything is installed, go to
/angular-app/
directory - run the command
> npm install --save @angular/material @angular/cdk
- Double check that under
/angular-app/angular.json
in line 32, the first stylesheet Angular is using is"./node_modules/@angular/material/prebuilt-themes/indigo-pink.css"
, if its not, then you can go ahead and copy and paste it as the first element of the json array.
- Once everything is installed, go to
To run the application, you'll need to make sure your Angular App is built, if
not, navigate to the /angular-app
directory and run
gradle build
once the Angular App is built, run spring via
gradle bootRun
You can now access the web application via http://localhost:8080
For a list of application routes, check out routes.txt
While the app is running, you can view its documentation at http://localhost:8080/webjars/swagger-ui/index.html
You can verify the application works using unit-tests and integration tests. For more information, see our testing document: System Test Manual
You can run unit tests using the command gradle test
or ./gradlew test
.
These tests are very fast, and check if each component works as intended.
You can run integration tests using the command gradle integration
or ./gradlew integration
.
Note that these tests are very thurough, but are also slow.
- Matt Crow - [email protected]
- Daniel Villavicencio - [email protected]
- Daniel Ramos - [email protected]
- Dave Kaercher - [email protected]
- Rojan Maharjan - [email protected]
- Ariel Camargo - [email protected]
- Since the app stores some configuration information on the local file system, it will not work on distributed systems, so it needs a single host machine.
- The application stores website configuration information in your home folder,
or the folder set by the
CHAMELEON_HOME
environment variable, in a folder namedChameleonBusinessStudio
- About springdoc
- Maintenance Manual
- System Test Report
- User Manual