Skip to content

A full-stack web application that allows users to add, view, update, and delete monthly challenges. Built using React (frontend) and Spring Boot (backend), with a PostgreSQL database.πŸš€

Notifications You must be signed in to change notification settings

chinmaywali/MonthlyChallenges_App-FullStack

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

13 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“Œ Monthly Challenges - Full Stack Web Application

πŸš€ Overview

The Monthly Challenges App is a full-stack web application that allows users to add, view, update, and delete monthly challenges. Built using React for the frontend and Spring Boot for the backend, the project follows a modern microservices approach with RESTful APIs and database integration.

This project is designed to enhance CRUD (Create, Read, Update, Delete) operations while demonstrating a clean and scalable architecture.

Built using React (frontend) and Spring Boot (backend), with a PostgreSQL database. The project follows a RESTful API architecture and has been tested on AWS using S3 (frontend hosting), Elastic Beanstalk (backend), and RDS (PostgreSQL database). πŸš€


πŸ› οΈ Tech Stack

πŸ§‘β€πŸ’» Backend (Spring Boot)

  • Spring Boot 3.4.3 - For building the RESTful API.
  • Spring Data JPA - For database interactions.
  • H2 Database - Used for local development (can be switched to PostgreSQL).
  • Maven - For dependency management and build automation.
  • Lombok - Reduces boilerplate code.
  • Tested on AWS Elastic Beanstalk

🌐 Frontend (React.js)

  • React 18 - For building the interactive UI.
  • Axios - For making API requests.
  • Bootstrap 5 - For styling and responsiveness.

🎯 Features

βœ… Users can add new challenges with a month and description.
βœ… Fetch and display challenges in a clean UI.
βœ… Edit and update existing challenges and Delete challenges if no longer needed.
βœ… RESTful APIs for communication between frontend and backend. βœ… Database Management with PostgreSQL and State management with React hooks (useState, useEffect).


πŸ“‚ Project Structure

MonthlyChallenges/
|
│── backend/ (Spring Boot App)
β”‚   β”œβ”€β”€ src/main/java/com/cw/ChallengeApplication/
β”‚   β”‚   β”œβ”€β”€ controllers/  # API Controllers
β”‚   β”‚   β”œβ”€β”€ services/  # Business Logic
β”‚   β”‚   β”œβ”€β”€ models/  # Entity Models
β”‚   β”‚   β”œβ”€β”€ repositories/  # Database Interactions
β”‚   β”‚   β”œβ”€β”€ ChallengeApplication.java  # Main Application
β”‚   β”œβ”€β”€ src/main/resources/application.properties
β”‚   β”œβ”€β”€ pom.xml
|
│── frontend/ (React App)
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”‚   β”œβ”€β”€ AddChallenges.js
β”‚   β”‚   β”‚   β”œβ”€β”€ ChallengeList.js
β”‚   β”‚   β”‚   β”œβ”€β”€ Challenge.js
β”‚   β”‚   β”œβ”€β”€ App.js
β”‚   β”‚   β”œβ”€β”€ index.js
β”‚   β”œβ”€β”€ package.json
|
│── README.md
|
│── .gitignore

βš™οΈ Setup Instructions

πŸ’» Backend Setup (Spring Boot)

1️⃣ Clone the repository:

git clone https://github.com/chinmaywali/MonthlyChallenges_App-FullStack.git

2️⃣ Navigate to the backend folder:

cd backend

3️⃣ Build and run the Spring Boot app:

mvn spring-boot:run

4️⃣ The backend will be available at:

http://localhost:8080

🎨 Frontend Setup (React)

1️⃣ Open another terminal and navigate to the frontend folder:

cd frontend

2️⃣ Install dependencies:

npm install

3️⃣ Start the React app:

npm start

4️⃣ The frontend will be available at:

http://localhost:3000

πŸ”— API Endpoints

πŸ“Œ Challenge API

Method Endpoint Description Request Body
GET /challenges Fetch all challenges N/A
POST /challenges Add a new challenge { "month": "January", "description": "Read books" }
PUT /challenges/{id} Update a challenge { "month": "February", "description": "Workout daily" }
DELETE /challenges/{id} Delete a challenge by ID N/A

Example JSON Request for POST & PUT:

{
  "month": "March",
  "description": "Learn a new programming language"
}

🀝 Contributing

Contributions are welcome! Feel free to fork this repo and submit a pull request.

About

A full-stack web application that allows users to add, view, update, and delete monthly challenges. Built using React (frontend) and Spring Boot (backend), with a PostgreSQL database.πŸš€

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published