Dynamic website built for conducting 2021 Literary Circle, NIT Durgapur auditions
Table of Contents
An audition portal to dynamically create questions which are stored in a database.The candidates can answer the questions and club members can review responses of each candidate . An admin panel is created using React to review each response and create/update/delete questions . Questions and responses are stored in a mongoDB database which interact with the React frontend using an Express.js created API with token based user authentication .
The project utilises the following technologies :
To get a local copy up and running follow these simple example steps.
-
Install Node
-
Install npm by runnning the following command on the terminal :
npm install npm@latest -g
-
Install MongoDB
-
Generate Google Client Id and Google client secret by creating a project on Google Developers Console.
-
Create a project on MongoDB Atlas and get the connection URL to the cluster.
-
Clone the repo
git clone https://github.com/lcnitdgp/LC-2021-auditions.git
-
Install NPM packages in the root, client and server directory.
npm install cd client && npm install cd server && npm install
-
Create .env files in both the client and server folders(to add the environment variables) and copy the following content into each :
Client directory .env file :
#Add the backend URL, ex - http://localhost:5000 REACT_APP_BACKEND_URL=
Server directory .env file :
#Add the Google Client Id GOOGLE_OAUTH_CLIENT_ID= #Add the Google Client Secret GOOGLE_OAUTH_CLIENT_SECRET= #Add the Google callback has to be the same which was passed in the google console, ex - http://localhost:5000/auth/google/redirect GOOGLE_CALLBACK= #Secret to sign the JWT token , can be any random string SECRET= #Add the frontend URL, ex - http://localhost:3000 FRONTEND= #Add the mongoDB connnection URL MONGO=
-
To run the project run the following command in the root directory.
npm start
A user who is an admin can create/update/delete questions which are correspondingly changed in the mongodb database. An admin user can also view the responses of each candidate and make other users an admin as well . A normal user can simply alter his profile and only once submit a response .
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the MIT License. See LICENSE
for more information.
Email : [email protected]
Project Link: https://github.com/lcnitdgp/LC-2021-auditions