This project is a full-stack storytelling platform built using React for the frontend and Spring Boot for the backend. It provides a platform for users to create, share, and explore stories across various genres.
- User authentication and registration
- Story creation and management
- Genre-based story categorization
- Feedback and rating system
- User dashboard for story management
- Admin panel for user and story management
- Responsive design for mobile and desktop
-
Frontend:
- React.js
- Redux for state management
- CSS for styling
-
Backend:
- Spring Boot
- Spring Security for authentication
- JPA for database interaction
- Maven for dependency management
-
Database:
- MySQL (or any compatible database)
-
Other:
- JWT for secure authentication
- RESTful API design
-
Repository URL: https://github.com/HARIHARANS24/storytelling-platform-react-springboot
-
Clone the repository:
git clone https://github.com/HARIHARANS24/storytelling-platform-react-springboot.git
Directory structure:
└── hariharans24-storytelling-platform-react-springboot/
├── README.md
├── gitattributes
├── LICENSE.txt
├── Backend/
│ ├── API-GATEWAY/
│ │ ├── mvnw
│ │ ├── mvnw.cmd
│ │ ├── pom.xml
│ │ ├── .gitignore
│ │ ├── src/
│ │ │ ├── main/
│ │ │ │ ├── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── example/
│ │ │ │ │ └── demo/
│ │ │ │ │ └── GatewayApplication.java
│ │ │ │ └── resources/
│ │ │ │ └── application.properties
│ │ │ └── test/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── demo/
│ │ │ └── GatewayApplicationTests.java
│ │ └── .mvn/
│ │ └── wrapper/
│ │ └── maven-wrapper.properties
│ ├── BACKEND/
│ │ ├── mvnw
│ │ ├── mvnw.cmd
│ │ ├── pom.xml
│ │ ├── .gitignore
│ │ ├── logs/
│ │ └── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ │ └── com/
│ │ │ │ └── example/
│ │ │ │ └── demo/
│ │ │ │ ├── ProjectApplication.java
│ │ │ │ ├── config/
│ │ │ │ │ ├── ApplicationConfig.java
│ │ │ │ │ ├── JwtAuthenticationFilter.java
│ │ │ │ │ └── SecurityConfig.java
│ │ │ │ ├── constant/
│ │ │ │ │ └── Api.java
│ │ │ │ ├── controller/
│ │ │ │ │ ├── AuthenticationController.java
│ │ │ │ │ ├── FavouriteController.java
│ │ │ │ │ ├── FeedbackController.java
│ │ │ │ │ ├── GenreController.java
│ │ │ │ │ ├── ShortStoryController.java
│ │ │ │ │ ├── StoryController.java
│ │ │ │ │ └── UserController.java
│ │ │ │ ├── dto/
│ │ │ │ │ ├── Favouriterequest.java
│ │ │ │ │ ├── request/
│ │ │ │ │ │ ├── AuthenticationRequest.java
│ │ │ │ │ │ └── RegisterRequest.java
│ │ │ │ │ └── response/
│ │ │ │ │ └── AuthenticationResponse.java
│ │ │ │ ├── model/
│ │ │ │ │ ├── Favourite.java
│ │ │ │ │ ├── Feedback.java
│ │ │ │ │ ├── Genre.java
│ │ │ │ │ ├── ShortStory.java
│ │ │ │ │ ├── StoryModel.java
│ │ │ │ │ ├── User.java
│ │ │ │ │ └── enumerate/
│ │ │ │ │ └── Role.java
│ │ │ │ ├── repository/
│ │ │ │ │ ├── FavouriteRepository.java
│ │ │ │ │ ├── FeedbackRepository.java
│ │ │ │ │ ├── GenreRepository.java
│ │ │ │ │ ├── ShortStoryRepository.java
│ │ │ │ │ ├── StoryRepository.java
│ │ │ │ │ └── UserRepository.java
│ │ │ │ ├── service/
│ │ │ │ │ ├── AuthService.java
│ │ │ │ │ ├── FavouriteService.java
│ │ │ │ │ ├── FeedbackService.java
│ │ │ │ │ ├── GenreService.java
│ │ │ │ │ ├── ShortStoryService.java
│ │ │ │ │ ├── StoryService.java
│ │ │ │ │ └── UserService.java
│ │ │ │ └── util/
│ │ │ │ └── JwtUtil.java
│ │ │ └── resources/
│ │ │ └── application.properties
│ │ └── test/
│ │ └── java/
│ │ └── com/
│ │ └── demo/
│ │ └── ProjectApplicationTests.java
│ ├── MICROSERVICE/
│ │ ├── mvnw
│ │ ├── mvnw.cmd
│ │ ├── pom.xml
│ │ ├── .gitignore
│ │ ├── src/
│ │ │ ├── main/
│ │ │ │ ├── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── demo/
│ │ │ │ │ ├── MicroServiceApplication.java
│ │ │ │ │ ├── Controller/
│ │ │ │ │ │ └── FeedbackController.java
│ │ │ │ │ ├── Model/
│ │ │ │ │ │ └── Feedback.java
│ │ │ │ │ ├── Repository/
│ │ │ │ │ │ └── FeedbackRepository.java
│ │ │ │ │ └── Service/
│ │ │ │ │ └── FeedbackService.java
│ │ │ │ └── resources/
│ │ │ │ └── application.properties
│ │ │ └── test/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── demo/
│ │ │ └── MicroServiceApplicationTests.java
│ │ └── .mvn/
│ │ └── wrapper/
│ │ └── maven-wrapper.properties
│ └── NAMING/
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ ├── .gitignore
│ ├── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ │ └── com/
│ │ │ │ └── example/
│ │ │ │ └── demo/
│ │ │ │ └── NamingApplication.java
│ │ │ └── resources/
│ │ │ └── application.properties
│ │ └── test/
│ │ └── java/
│ │ └── com/
│ │ └── example/
│ │ └── demo/
│ │ └── NamingApplicationTests.java
│ └── .mvn/
│ └── wrapper/
│ └── maven-wrapper.properties
└── Frontend/
├── README.md
├── package-lock.json
├── package.json
├── .gitignore
├── public/
│ ├── ad sin
│ ├── admin sin.webp
│ ├── analytics.webp
│ ├── index.html
│ ├── manifest.json
│ ├── robots.txt
│ ├── sign1.avif
│ └── sign2.avif
├── src/
│ ├── App.css
│ ├── App.js
│ ├── App.test.js
│ ├── index.css
│ ├── index.js
│ ├── reportWebVitals.js
│ ├── setupTests.js
│ ├── pages/
│ │ ├── AdminLogin/
│ │ │ ├── adminlogin.css
│ │ │ └── adminlogin.js
│ │ ├── Contact/
│ │ │ ├── Contact.css
│ │ │ └── Contact.js
│ │ ├── Creators Corner/
│ │ │ ├── Creators.css
│ │ │ └── Creators.js
│ │ ├── Dashboardf/
│ │ │ ├── dashboard.css
│ │ │ ├── dashboard.js
│ │ │ ├── dbadmins.js
│ │ │ ├── dboverview.css
│ │ │ ├── dboverview.js
│ │ │ └── dbuserdetails.js
│ │ ├── Faq/
│ │ │ ├── F.js
│ │ │ ├── Fa.css
│ │ │ └── Fa.js
│ │ ├── Genre/
│ │ │ ├── Genre.css
│ │ │ ├── Genre.js
│ │ │ └── Stories/
│ │ │ ├── StarRating.js
│ │ │ ├── Stories.css
│ │ │ └── Story.js
│ │ ├── Home/
│ │ │ ├── Home.css
│ │ │ └── Home.js
│ │ ├── Policies/
│ │ │ └── PrivacyPolicy.js
│ │ ├── Queries/
│ │ │ ├── Queries.css
│ │ │ └── Queries.js
│ │ ├── ShortStory/
│ │ │ ├── ShortStory.css
│ │ │ ├── ShortStory.js
│ │ │ └── Stories.css
│ │ ├── SignIn/
│ │ │ ├── Login.css
│ │ │ └── Login.js
│ │ ├── SignUp/
│ │ │ ├── Create.css
│ │ │ └── Create.js
│ │ ├── Table/
│ │ │ ├── feedbacktable.js
│ │ │ ├── shortsorytable.js
│ │ │ ├── storyPage.css
│ │ │ ├── storytable.js
│ │ │ └── usertable.js
│ │ ├── Terms/
│ │ │ └── Terms.js
│ │ └── TextEditor/
│ │ ├── TextEditor.css
│ │ └── TextEditor.js
│ └── redux/
│ ├── reducer.js
│ └── store.js
└── .vscode/
└── launch.json
- Node.js and npm for frontend development
- Java Development Kit (JDK) for backend development
- Maven for dependency management
- MySQL or any compatible database
- Navigate to the
Frontenddirectory. - Install dependencies:
npm install
- Start the development server:
npm start
- Navigate to the
Backenddirectory. - Install dependencies:
mvn install ```3. Run the application: ```bash mvn spring-boot:run
🤝 Contributing We welcome contributions! Please follow these steps:
- Fork the repository
- 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
📝 License This project is licensed under the MIT License - see the LICENSE file for details.
👥 Authors Hariharan S - Initial work - HARIHARANS24
🙏 Acknowledgments
- Spring Boot Team
- React Team
- Material-UI Team
- All contributors and supporters