Eventz is an event creation and booking webapp that aims at solving event organization and ticketing problem related with an offline system. To understand the internals of this system , read this.
Make sure you have NodeJS installed, in order to run this application.
- Clone this repository:
git clone https://github.com/atTheShikhar/eventz.git
- Goto the cloned repo by:
cd eventz
-
Client Setup
- Goto
eventz-client
directory by:
cd eventz-client
- Create
.env
and modify accordingly:
REACT_APP_BASE_URL= <Client url with port number> REACT_APP_RAZORPAY_KEY= <Your razorpay api key>
- Run the following command to install the dependencies:
npm install
- Goto
-
Goto back to the previous directory by:
cd ..
-
Server Setup
- Goto
eventz-server
directory by:
cd eventz-server
- Install all dependencies by:
npm install
- Goto
config
folder and create a fileconfig.env
and set the following with your own values:
PORT=8000 CLIENT_URL= <url of the client(react) app> SERVER_URL= <url of the server> MONGO_CONNECTION_URI= <your mongodb connection url> JWT_KEY= <your jwt key (something stong)> CLIENT_ID= <your client id (from google playground)> CLIENT_SECRET= <your client secret (from google playground)> REFRESH_TOKEN= <your refresh token (from google playground)> GMAIL_ID= <gmail id which will be used for sending mails> RAZORPAY_KEYID= <your razorpay key id> RAZORPAY_KEYSECRET= <your razorpay key secret> RAZORPAY_WEBHOOK_SECRET= <your webhook secret (optional)>
Database : You can create your database using MongoDB Atlas and generate the connection string from there. NOTE: You may need to put your ip address to Atlas's whitelist to be able to acess the database, Read this for more details.
Mailing System : This webapp uses gmail account to provide mailing system, the related variables like
CLIENT_ID
,CLIENT_SECRET
andREFRESH_TOKEN
can be found at you google playgrounds panel. The complete guide to generate your tokens are given on this blog postPayments System : This system uses Razorpay payments integration to provide the payments feature. You can read their docs to understand and generate your tokens.
Admin panel : To access admin panel, manually create an
admin
collection in your MongoDB database and insert a document in the below format:{ "username": "<your admin username>", "password": "<your admin password>" }
- Goto
- Goto
eventz-server
directory and run:
npm start
- Goto
eventz-client
directory and run:
npm start
To access the admin panel, goto
<your client url>/admin/login
to login