- Tech Stack π¨βπ»
- My Inspiration π‘
- What it does β¨
- How I built it πΊ
- Screenshots πΌοΈ
- How to play π
- Project Structure πͺ
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.
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.
- 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.
- 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
.
β .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...
- 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
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
Run the following command in the root to get the client side and the server side running concurrently:
npm run dev
Keep the monogodb database running locally before running the application.