Ipl-Auction
Hit β if you like this project
Overview
- Tech Stack π¨βπ»
- My Inspiration π‘
- What it does β¨
- How I built it πΊ
- Screenshots πΌοΈ
- How to play π
- Project Structure πͺ
Tech Stack π¨βπ»
My Inspiration π‘

It began back during my childhood days, the urge to play the IPL Auction depicting real players. I used to team up with my friends and play the auction manually with a pen and paper, with a organizer to keep track. Over the last 1 year, I wondered, can I do anything to make my experience better? So I came up with the idea of building a IPL auction app, based on the MERN stack.
What it does β¨

You can team up with your friends and dive into the fun world of auctioning IPL players. The application is capable of auctioning players belonging to various IPL Teams. The bid timer is reset with each bid and the time slot to buy a player is 10 seconds so be quick. It's a fun application to experience the the real IPL Auction with friends. Simply create an account, gather your friends and jump staright into the auction.
How I built it πΊ

- React is used on the client side.
- Node.js is used on the server side.
- The news is fetched from the RSS feed of Times of India.
- Puppeteer is used to scrape data from the IPLT20 Website.
- Socket.io is used to establish a full-duplex connection with the server and the client.
- HTTP-only cookies are used to store the information of the user on the client side.
- bcrypt is used to hash the passwords of the user.
- An auction object is created upon the creation of a new auction which stores the information of current auction.
- User class stores the information of the user and the players purchased by him/her.
- node-schedule is used to schedule the scraping process.
- Mongodb database is used to store the incomming data.
Screenshots πΌοΈ
How to play π

- Login/Signup using your email address and password
- Create a new auction
- Share the generated code with your friends
- Bid on your favourite players
- Most important part is to enjoy
Project Structure πͺ
.
β .gitignore
β app.js
β package-lock.json
β package.json
β README.md
β
ββββ.github
β ββββworkflows
β codeql-analysis.yml
β
ββββ.husky
β pre-commit
β
ββββ.vscode
β settings.json
β
ββββclient
β β .gitignore
β β package-lock.json
β β package.json
β β
β ββββpublic
β β β index.html
β β β
β β ββββImages
β β arrow.svg
β β error.svg
β β logo.png
β β profile.jpeg
β β Screenshot-1.png
β β Screenshot-2.png
β β Screenshot-3.png
β β Screenshot-4.png
β β Screenshot-5.png
β β Screenshot-6.png
β β Screenshot-7.png
β β
β ββββsrc
β β App.js
β β index.js
β β
β ββββcomponents
β β AccordianComponent.js
β β Bars.js
β β CreateAuction.js
β β Error.js
β β Form.js
β β Game.js
β β Input.js
β β JoinAuction.js
β β Loading.component.js
β β Lobby.js
β β Navbar.js
β β News.js
β β NewsCard.js
β β NewsContent.js
β β NewsDate.js
β β NewsDescription.js
β β NewsImage.js
β β NewsTitle.js
β β PlayerCard.js
β β PlayerStats.js
β β Title.js
β β UserAccordian.js
β β
β ββββhooks
β β useFindUser.js
β β UserContext.js
β β
β ββββpages
β β About.js
β β Auction.js
β β Home.js
β β Loading.js
β β Login.js
β β PreviousAuctions.js
β β SignUp.js
β β
β ββββroutes
β β PrivateRoute.js
β β PublicRoute.js
β β
β ββββsass
β β β main.scss
β β β
β β ββββbase
β β β animations.scss
β β β reset.scss
β β β
β β ββββcomponents
β β β bars.scss
β β β button.scss
β β β create-auction.scss
β β β error.scss
β β β form.scss
β β β games.scss
β β β loading.scss
β β β lobby.scss
β β β navbar.scss
β β β news.scss
β β β playerCard.scss
β β β title.scss
β β β user-accordian.scss
β β β
β β ββββpages
β β β about.scss
β β β auction.scss
β β β home.scss
β β β loading.scss
β β β previous-auction.scss
β β β
β β ββββutilities
β β classes.scss
β β mixins.scss
β β variables.scss
β β
β ββββservices
β β auction.service.js
β β auth.service.js
β β news.service.js
β β players.service.js
β β sockets.service.js
β β
β ββββutilities
β axiosInstance.js
β handleChanges.js
β validation.js
β
ββββcontroller
β auction.js
β bidding.js
β game.js
β user.js
β
ββββdata
β squads.json
β
ββββdatabase
β β connection.js
β β
β ββββmodels
β user.model.js
β
ββββmiddleware
β auth.js
β
ββββroutes
β auction.route.js
β news.route.js
β socket.route.js
β user.route.js
β
ββββutilities
players.js...
Steps to get the project running locally on your machine
Setting Up Environment Variables
- Create a .env file in the backend directory
- Initialize DEV_MONGO_URL to mongodb://localhost:27017/
- Initialize DEV_REACT_URL to http://localhost:3000
- Initialize DEV_SERVER_URL to http://localhost:8000
- Initialize SECRET to a JWT secret key
Installing the dependencies
Run the following command in the root of the project to install the packages on the server side:
npm i
Run the following command in the root of the project to install the packages on the client side:
cd client
npm i
Running the project
Run the following command in the root to get the client side and the server side running concurrently:
npm run dev
Note
Keep the monogodb database running locally before running the application.
Log in or sign up for Devpost to join the conversation.