Skip to content

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

License

Notifications You must be signed in to change notification settings

thenameisajay/StoryArch

Repository files navigation

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.

About

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

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages