You are on page 1of 10

Accept86 RaMoRD Requirement specification v0.

1 2014-08-10
RaMoRD Rename and Mirror Or Remove Duplicates
Requirement Specification v0.1
1 User interface
Software is reeware wit!out warrant"#
S!ow reeware $icense on first run.
1.1 Menu bar
i$e
%$ose
&nfo
o$$ow me on 'witter
(pen software requirement specification
Request feature
&nfo
)ersion*Re$ease %an+i+ate
Date
Aut!or
%re+its
1.2 Main window
,!erever "ou see t!e fo$$owin- icons.
/ 0 'oo$tip !over over it to see a++itiona$ info
a++itiona$ info
#0'oo$tip !over over it to see warnin-
t!is is a warnin-
1utton. Mirror fo$+ers
1utton. Remove +up$icates
1utton. (ptimi2e fi$e names*fo$+er structures
Donate 3utton 4ri-!t 3ottom corner5
6a-e 1 of 10
Accept86 RaMoRD Requirement specification v0.1 2014-08-10
2 Feature categor!s
1efore t!e software +oes e7ecute an" of t!e fo$$owin- tas8s it a$wa"s s!ows a tree-view of its tas8s
for eac! fi$e. 9ac! tas8 can 3e +eactivate+ in+ivi+ua$$". i$es can 3e fi$tere+ to 3e i-nore+ for t!ose
tas8s.
2.1 Mirror folders
'!is feature mirrors t!e content of a se$ecte+ source fo$+er to a se$ecte+ tar-et fo$+er. :eneration of
+up$icates in t!e mirrorin- process are avoi+e+ 3" -eneratin- MD; !as! co+es for t!e fi$es in t!e
se$ecte+ source*tar-et fo$+ers an+ its su3 fo$+ers. &f rename+ fi$es are foun+ in t!e tar-et fo$+er t!e"
can 3e s8ippe+ or rename+ 3ac8 to t!e one of t!e source fi$e. &f a move+ fi$e is foun+ in t!e tar-et
fo$+er it can 3e p$ace+ 3ac8 in t!e position of t!e source fo$+er. i$es t!at are in t!e source fo$+er
3ut not in t!e tar-et fo$+er wi$$ 3e copie+ to it. i$es t!at are in t!e tar-et fo$+er 3ut not in t!e source
fo$+er can 3e eit!er i-nore+ or +e$ete+ or copie+ to t!e source fo$+er.
'!e fi$es can a$so 3e mirrore+ from one mounte+ true cr"pt container to anot!er to up+ate a 3ac8up
container.
2.2 Remove duplicates
'!is feature i+entifies*removes +up$icates 3" -eneratin- MD; !as! co+es for fi$es in a se$ecte+
fo$+er an+ its su3 fo$+ers. &n p$ace of a remove+ +up$icate t!e software can create a re$ative $in8 to
t!e remainin- ori-ina$.
2.3 Optimize file names/Folder structures
'!is feature can rename fi$es in a se$ecte+ fo$+er an+ its su3 fo$+ers to optimi2e fi$e names. &t can
a$so automatica$$" create a own su3 fo$+er for fi$es wit! a simi$ar fi$e name an+ move t!ose fi$es to
it. &n -enera$ t!is feature is to ma8e it easier to fin+ in+ivi+ua$ fi$es 3" sortin- t!em an+ -ivin- t!em
more meanin-fu$ fi$e names.
<ets sa" "ou !ave a fo$+er wit! music vi+eos. '!ere are t!e fi$es.
=:roup>? Rammstein - Sonne=@20p?.avi
an+
SonneA20RamsteinA20=480p? 4$ive5.mp4
Note that Rammstein is written with a typing error in one of those original names.
'!e software can auto-process t!e fi$e names to somet!in- $i8e.
Rammstein - Sonne =:orup>?=@20p?.avi
an+
Rammstein - Sonne 4$ive5=480p?.mp4
Note that Rammstein is written identically in the result.
'!e software can i+entif" simi$ar terms in fi$e names an+ put t!em to t!e 3e-innin- of t!e name. &f
6a-e 2 of 10
Accept86 RaMoRD Requirement specification v0.1 2014-08-10
its not o3vious w!ic! one of t!e variants of t!e term s!ou$+ 3e use+B "ou are prompte+ to se$ect one.
&f t!ere are mu$tip$e i+entica$ or simi$ar terms in fi$e namesB t!e or+er wi$$ 3e 8ept. &f t!e terms are
in +ifferent or+ers "ou are prompte+ to se$ect a or+er. &f t!e terms !ave anot!er term in 3etween
t!em it wi$$ 3e 8ept.
A fi$ter can 3e confi-ure+ to i-nore terms $i8e Can+D to i+entif" simi$ar or i+entica$ terms.
6arts in 45 or =? can 3e move+ to t!e en+ of t!e name.
i$es wit! simi$ar or i+entica$ terms can 3e move+ to t!eir own su3 fo$+er.
'!e ru$es for t!is process can 3e confi-ure+.
" Detailed requirements for eac# feature
3.1 All feature categor!s
-Save !istor" of comp$ete+ tas8s 4wit! +ate*time an+ user settin-s54st+. +eactivate+ to protect
privac"5
-(ption to revert tas8s 3" !istor"
-6ossi3$e tas8s.
cop" fo$+er
+e$ete fo$+er
rename fi$e from - to
cop" fi$e
+e$ete fi$e
create su3 fo$+er
move fi$e
-i$ter fi$es 3" e7tension or fi$e name
-i$ter.e7c$u+e 7 3ut inc$u+e " an"wa"
-Report 3u- feature 4via emai$B a++s tas8 $o-5
3.2 Mirror folders
".2.1 Step 1
4win+ow5
-user se$ect source*tar-et fo$+er
-user set fi$e fi$ters
-user set !ow man" 83"te to process ma7 for !as!es 4A++ # - ,it! warnin-. CEot enou-! 81"te can
resu$t in i+entif"in- +ifferent fi$es as +up$icates5
6a-e F of 10
Accept86 RaMoRD Requirement specification v0.1 2014-08-10
".2.2 Step 2
4win+ow5
--enerate !as! co+es
-s!ow processin- source fo$+er*tar-et fo$+er
-s!ow pro-ress 3ar
-s!ow 7 M1"te processe+ of " M1"te
-s!ow remainin- time
-s!ow $ist 3o7 wit! fi$es up to current processin- fi$e
".2." Step "
4win+ow/5
--enerate $ist of +up$icates for eac! fi$e 3" !as! co+es
--enerate $ist of a$$ +up$icates in -enera$
".2.$ Step $
4win+ow5
user options:
Dup$icates.
-s8ip +up$icates
-rename +up$icates to source
-rename +up$icates to tar-et
Move+ fi$es.
-Move 3ac8 to p$ace $i8e in source fo$+er
-c!an-e fi$ename to source
-on$" app$ies if t!eres on$" one e7amp$e in source4ot!erwise use remove +up$icates first5
%op"in-.
-%op" missin- fi$e from source to tar-et
-%op" missin- fi$e from tar-et to source
6a-e 4 of 10
Accept86 RaMoRD Requirement specification v0.1 2014-08-10
De$etin-.
-De$ete fi$es t!at are in tar-et 3ut not in source
".2.% Step %
4no win+ow5
--enerate tree view
-rename +ifferent fi$es wit! t!e same name t!at are copie+ from source to tar-et 4a++ num3er5
-on$" s!ow +ifferences 3etween source*tar-et
".2.& Step &
4win+ow5
-s!ow tas8 tree view
for eac! tas8. active*+eactive tas8G +up$icate of fo$$owin- fi$es $ist as une+ita3$e com3o3o7G
-s!ow require+*avai$a3$e space
".2.' Step '
4win+ow5
-+ia$o-. +o "ou rea$$" want to procee+
".2.( Step (
-e7ecute tas8s
-s!ow pro-ress 3ar
-s!ow remainin- time
-s!ow $ist 3o7 wit! fi$es up to current processin- fi$e
3.3 Remove duplicates
6a-e ; of 10
Accept86 RaMoRD Requirement specification v0.1 2014-08-10
".".1 Step 1
4win+ow5
-user se$ect fo$+er
-user set fi$e fi$ters
-user set !ow man" 83"te to process ma7 for !as!es 4A++ # - ,it! warnin-. CEot enou-! 81"te can
resu$t in i+entif"in- +ifferent fi$es as +up$icates5
".".2 Step 2
4win+ow5
--enerate !as! co+es
-s!ow pro-ress 3ar
-s!ow M1"te processe+ of " M3"te
-s!ow remainin- time
-s!ow $ist 3o7 wit! fi$es up to current processin- fi$e
"."." Step "
4win+ow/5
--enerate $ist of +up$icates for eac! fi$e 3" !as! co+es
--enerate $ist of a$$ +up$icates in -enera$
".".$ Step $
4win+ow5
-for a$$ t!e fi$es wit! +up$icates eac! one entr" to se$ect remainin- fi$e 4com3o3o75
-user option. create re$ative $in8 to remainin- fi$e 4wit! fi$ter option w!ic! +up$icates t!is app$ies
to5
".".% Step %
4no win+ow5
--enerate tree view
".".& Step &
4win+ow5
-for eac! tas8. 'ree view. active*+eactive tas8G +up$icate of fo$$owin- fi$es $ist as une+ita3$e
com3o3o7G activate +eactivate create re$ative $in8 to remainin- fi$e
6a-e 6 of 10
Accept86 RaMoRD Requirement specification v0.1 2014-08-10
".".' Step '
4win+ow5
-+ia$o-. +o "ou rea$$" want to procee+
".".( Step (
-e7ecute tas8s
3." Optimize file names/Folder structures
".$.1 Step 1
4win+ow5
-user se$ect fo$+er
".$.2 Step 2
4win+ow5
user options.
simi$ar*i+entica$ terms in fi$e names.
-:roup fi$es wit! simi$ar*i+entica$ terms in fi$e names4 s$i+er to set require+ simi$arit"5
-At $east 7 i+entica$ or simi$ar terms $on-er t!an " c!ars
-i$ter otions 4st+. an+ un+ =H? 4H55
-:roup options.
-unif" simi$ar term to t!e one wit! most resu$ts
-if $ess t!an 7 A are t!e same prompt user to se$ect version
-6ut more t!an 7 -roupe+ fi$es into t!eir own su3fo$+er
6a-e @ of 10
Accept86 RaMoRD Requirement specification v0.1 2014-08-10
-%!ec8 for simi$ar terms i-nore terms in 45 or =?. &f a i+entica$ or simi$ar term is foun+ -ive options
se$ect I'ermAI IA++Somet!in-&n1etweenI se$ect I'erm1I
".$." Step "
4win+ow5
-s!ow preview win+ow in a si+e3ar to t!e ri-!t
-user options.
-user can se$ect fo$+er for preview4stan+ar+ pat! is fo$+er from step one5
4save*restore script entr"s5
-A++ script entr"4ma7 105
-Remove script entr"
-6ossi3$e first options of entr".
-in+ term 7 in fi$ename t!en... 4option to fin+ 1B2B...7 times54supports wi$+car+s54$imit to
c!ars 7 to "54+eactivates secon+ option5
-su3 option for fin+in- simi$ar terms to 7 4 s$i+er to set require+ simi$arit"5
-su3 option e7c$u+e e7tension
-&f c!ars from 7 to " counte+ from 3e-innin- or en+ contain term 2 t!en... 4must 3e true to
e7ecute action54can 3e ne-ate+54supports wi$+car+s5
-in+ same c!ar 7 in a row4+eactivates secon+ option5
-in+ num3er 3etween c!ars 7 an+ "4+eactivates secon+ option5
-6ossi3$e secon+ options of entr"
-in+ term 7 in fi$ename t!en.. 4on$" possi3$e w!en first entr" 0 if5 4option to fin+ 1B2B...7
times54supports wi$+car+s54$imit to c!ars 7 to "5
-su3 option for fin+in- simi$ar terms to 7 4 s$i+er to set require+ simi$arit"5
-su3 option e7c$u+e e7tension
-if c!ars from 7 to " counte+ from 3e-innin- or en+ contain term 2 t!en... 4if first option is if
3ot! must 3e true to e7ecute action54can 3e ne-ate+54supports wi$+car+s5
-in+ same c!ar 7 in a row4on$" after if5
6a-e 8 of 10
Accept86 RaMoRD Requirement specification v0.1 2014-08-10
-in+ num3er 3etween c!ars 7 an+ "
-6ossi3$e actions of entr"
&f in+*in+ same c!ars in a row*in+ num3er 3etween c!ars 7 an+ ".
-se$ect an+ move in+ resu$t4s5 to 3e-innin-*en+*c!ar position 7
-se$ect an+ rep$ace in+ resu$t4s5 wit! "
A$wa"s.
-Remove c!ars from 7 to " from 3e-innin-*en+
-A++ num3er to position 7B increase for eac! resu$t
t!e stan+ar+ ru$es are.
-in+ a$$ IJI rep$ace wit! I I
-in+ a$$ IA20I rep$ace wit! I I
-in+ a$$ I.I rep$ace wit! I I e7c$u+e e7tension
-in+ a$$ I4H)" Move to end
-Find all "[*]I Move to en+
-in+ I-I in first F 1"tes rep$ace wit! not!in-
-in+ mu$tip$e I I in a row rep$ace wit! not!in-
-in+ I I in first 3"te remove if foun+
-in+ I I in $ast 3"te remove if foun+
".$.$ Step $
4no win+ow5
--enerate tree view
-c!ec8 if fi$e name a$rea+" e7istsB in t!is case a++ num3er
".$.% Step %
4win+ow5
-for eac! tas8. 'ree view. active*+eactive tas8G ori-ina$ name 7G rename to name "
6a-e K of 10
Accept86 RaMoRD Requirement specification v0.1 2014-08-10
".$.& Step &
4win+ow5
-+ia$o-. +o "ou rea$$" want to procee+
".$.' Step '
4win+ow5
-e7ecute tas8s
6a-e 10 of 10