An open API service indexing awesome lists of open source software.

https://github.com/ajaymahadeven/StoryArch

To develop a non-web-based software application in Java to support individual and collaborative plot development for stories.
https://github.com/ajaymahadeven/StoryArch

back-end client-server-architecture git intellij junit5 learn mvc-architecture writing-application

Last synced: about 1 year ago
JSON representation

To develop a non-web-based software application in Java to support individual and collaborative plot development for stories.

Awesome Lists containing this project

README

          

# StoryArch - Plot development Application for writers
--

## DESCRIPTION


StoryArch is a creative tool aimed at helping writers build their narratives more efficiently. It streamlines the process of structuring a story, enabling users to outline their plots, build characters, and track story progress effortlessly.
The idea was to develop a non-web-based software application in Java to support individual and collaborative plot development for stories. The application is expected to be deployed on laptops and desktops.

### Technologies Used

* Java 17
* Intelli - J Ultimate
* Git
* JUnit 5

---

### FILE STRUCTURE :


  1. Terminal folder - Terminal View

  2. src - Back end development folder

## SETUP AND INSTALLATION

Terminal Usage or IDE Based
For Backend :


  1. Compile all files using javac *.java or open using an IDE (Preferably Intelli-J)

  2. Run the MainApp.java file using java MainApp

  3. To access the Projects, Storyboard or chapter -> a random ID is assigned, this can be viewed using (the View option).



---

## FUNCTIONALITIES :


  1. Users must register with the application before they can use it;

  2. Each story has a project associated with it;

  3. A story plot can be developed by an individual or a team of writers

  4. The free version of the application supports individual writers, with each allowed a maximum of 10 projects

  5. The paid version (via annual subscription) adds support for teams and unlimited projects;

  6. The application should allow users of the free version to upgrade to the paid version at any time;

  7. The paid version should remind users of upcoming subscription deadlines and allow them to renew using an external payment service;

  8. When there is a team of writers, the story has a chief writer who sets up a project in the application for that item and invites the rest of the team to join;

  9. The application should provide graphical and textual interfaces for plot development;

  10. Plots do not have to be developed in a linear fashion;

  11. When there is a team of writers, each writer can work on a different part of the plot simultaneously;

  12. The application should maintain versions of the plot based on commits by writers;

  13. It should be possible for writers to work in ‘offline’ mode when they are not connected to the network;

  14. The application should allow writers to visualise the story in chronological or chapter order;

  15. Writers should have the option of making use of and paying for external illustration services;

  16. The application should generate chapter outlines as text files to be used with other word processing applications;

  17. Writers should be able to submit plots to publishers (who are external to the system) via existing APIs.

---

### No of Test Cases: 93

Classes Tested:


  1. Model Layer: 5

  2. Service Layer: 5

### Test Coverage :
Screenshot 2023-04-23 at 1 15 27 PM

### CONTRIBUTION GUIDELINES :

- Clone the repository from GitHub server.
- Create a new branch for your feature or bug fix.
- Write unit tests for your code.
- Implement your feature or bug fix.
- Ensure all tests pass.
- Commit your changes and push to your branch on the GitHub server.
- Submit a merge request to merge your changes into the main branch.

---

### License

This project is done part of coursework of CS5033 - Software Architecture of the
Computer Science Dept of University of St.Andrews.

This project is licensed under the MIT License. See the LICENSE file for more information.