Welcome to Eventure, a platform designed to simplify event management and ticketing. Built as part of the "Innovate With Ballerina" hackathon, Eventure focuses on streamlining the process of booking, managing, and enjoying events.
- Frontend: Next.js 14 with Tailwind CSS.
- Backend: Ballerina (located in the
serverfolder). - Authentication: Asgardeo.
- Database: PostgreSQL, hosted on Supabase.
- File Storage: AWS S3.
- Email Notifications: Resend.
- client/ - Contains the Next.js application (frontend).
- server/ - Contains the Ballerina code (backend).
To run this project, you will need to install the following:
- Node.js (v18+)
- Ballerina (v2301.x)
- PostgreSQL (for local development, or connect to the Supabase instance)
- AWS S3 account (for file storage)
- Asgardeo account (for authentication)
- Resend account (for email notifications)
git clone https://github.com/supunsathsara/iwb325-phoenix-code.git
cd iwb325-phoenix-codeNavigate to the client folder:
cd clientInstall the dependencies:
npm installCreate the .env.local file:
To make setup easier, download the .env.local file from this Google Drive link and place it in the client/ folder.
Alternatively, create an .env.local file with the following structure:
AUTH_SECRET="<your-auth-secret>"
AUTH_ASGARDEO_ID="<your-asgardeo-id>"
AUTH_ASGARDEO_SECRET="<your-asgardeo-secret>"
ASGARDEO_CLIENT_ID="<your-asgardeo-client-id>"
ASGARDEO_CLIENT_SECRET="<your-asgardeo-client-secret>"
ASGARDEO_ISSUER="<your-asgardeo-issuer>"
JWT_SECRET="<your-jwt-secret>"
NEXT_PUBLIC_BAL_URL="<your-ball-url>"
NEXT_PUBLIC_PAYHERE_MERCHANT_ID="<your-payhere-merchant-id>"
PAYHERE_MERCHANT_SECRET="<your-payhere-merchant-secret>"
NEXT_PUBLIC_PAYHERE_NOTIFY_URL="<your-payhere-notify-url>"
NEXT_PUBLIC_PAYHERE_SANDBOX="<true/false>"
NEXT_PUBLIC_PAYHERE_RETURN_URL="<your-return-url>"
NEXT_PUBLIC_PAYHERE_CANCEL_URL="<your-cancel-url>"
RESEND_API_KEY="<your-resend-api-key>"Run the Next.js app:
npm run devThe application will be accessible at http://localhost:3000.
Navigate to the server folder:
cd serverInstall dependencies and Ballerina modules (if required).
Download the config.toml file from this Google Drive link and place it in the server/ folder.
Alternatively, create a config.toml file with the necessary configurations such as:
[database]
host = "<your-postgres-database-host>"
port = "<your-postgres-database-port>"
databaseName = "<your-postgres-database-name>"
username = "<your-postgres-username>"
password = "<your-postgres-password>"
[jwt]
signingSecret = "<your-jwt-signing-secret>"
[s3]
AWS_ACCESS_KEY_ID = "<your-aws-access-key-id>"
AWS_SECRET_ACCESS_KEY = "<your-aws-secret-access-key>"
AWS_BUCKET = "<your-aws-bucket-name>"
AWS_REGION = "<your-aws-region>"Run the Ballerina service:
bal runThe backend will start on the specified port, typically http://localhost:8080.
For easier setup, we have uploaded the required .env.local and config.toml files to a Google Drive. Please download them using the links provided and place them in the respective directories.
- Next.js env file: Download here
- Ballerina config file: Download here
- Folder with both files: Download here
Note: Please download the configuration files using the provided links and place them in the respective directories to run the application. Note that these files will be available only until the conclusion of the hackathon and the keys will be revoked after that.
Once both the frontend and backend are set up and running, you can access the application at http://localhost:3000 and start using Eventure.
- Easy Ticket Booking - Seamlessly book event tickets online.
- Event Dashboard - Manage your events and tickets with ease.
- Secure Payments - Integrated with PayHere for secure transactions.
- Real-Time Notifications - Receive updates and confirmations instantly.
- Next.js 14
- Tailwind CSS
- Ballerina
- Asgardeo Authentication
- PostgreSQL
- AWS S3
- Resend Email Notifications
We built this project as part of the Innovate With Ballerina hackathon. Our aim is to simplify event management for everyone.
Thank you for reviewing Eventure!