From 71029d736036d1f5f7b816c002dae4179e5f0f2d Mon Sep 17 00:00:00 2001 From: Paveetss Date: Fri, 18 Apr 2025 16:09:55 +0530 Subject: [PATCH 1/2] Assignment 1 submitted --- OverTheWire_Bandit_upto_15.md | 413 ++++++++++++++++++++++++++++++++++ 1 file changed, 413 insertions(+) create mode 100644 OverTheWire_Bandit_upto_15.md diff --git a/OverTheWire_Bandit_upto_15.md b/OverTheWire_Bandit_upto_15.md new file mode 100644 index 0000000..3430d28 --- /dev/null +++ b/OverTheWire_Bandit_upto_15.md @@ -0,0 +1,413 @@ +Level 0 : +**Username : bandit0** +```bash +ssh bandit0@bandit.labs.overthewire.org -p 2220 +``` +**password : bandit0** + +### Level 0 to Level 1 +```bash +ls -alps +``` +> lists all the directory contents of bandit0 +```bash +cat readme +``` +> gives the password to the next level stored in the readme directory +exit and login to bandit1 using ssh as did in Level 0 +**password : ZjLjTmM6FvvyRnrb2rfNWOZOTa6ip5If** + +### Level 1 to Level 2 +```bash +ls -alps +``` +> lists all the directory contents of bandit1 +```bash +cat./- +``` +> We cannot directly write cat - because then the compiler does not give output as there is no filename after - thats why we use ./ and then filename - and now we get the password for next level +exit and login to next level using ssh +**password : 263JGJPfgU6LtdEvgfWU1XP5yac29mFx** + +### Level 2 to Level 3 +```bash +ls -alps +``` +> lists all the directory contents of bandit2 +```bash +cat spaces\ in\ this\ filename +``` +> \ takes in account the spaces in the name of the file "spaces in this filename" and hence we get the password for next level +exit and login to next level using ssh. +**password : MNk8KNH3Usiio41PRUEoDFPqfxLPlSmx** + +### Level 3 to Level 4 +```bash +ls -alps +``` +> lists all the directory contents of bandit3 +```bash +cd inhere/ +``` +> changes the working directory to inhere +```bash +ls -alps +``` +> lists all the directory contents of inhere +```bash +cat ...Hiding-From-You +``` +> gives password of the next level from the hidden file +exit and login to next level using ssh +**password : 2WmrDFRmJIq3IPxneAaMGhap0pFhF3NJ** + +### Level 4 to Level 5 +```bash +ls -alps +``` +> lists all the directory contents of bandit4 +```bash +cd inhere/ +``` +> changes the working directory to inhere +```bash +ls -alps +``` +> lists all the directory contents of inhere +```bash +file ./* +``` +> finds the human readable file in inhere directory and indicates it as ASCII text +```bash +cat ./-file07 +``` +> gives the password from the human readable file for the next level +exit and login to next level using ssh +**password : 4oQYVPkxZOOEOO5pTW81FB8j8lxXGUQw** + +### Level 5 to Level 6 +```bash +ls -alps +``` +> lists all the directory contents of bandit5 +```bash +cd inhere/ +``` +> changes the working directory to inhere +```bash +ls -alps +``` +> lists all the directory contents of inhere +```bash +find ~/inhere ! -executable -size 1033c +``` +> finds the required file with size 1033 bytes and which is human readable and not executable +```bash +cat /home/bandit5/inhere/maybehere07/.file2 +``` +> gives the password stored in the file found above +exit and login to next level using ssh +**password : HWasnPhtq9AVKe0dmk45nxy20cvUa6EG** + +### Level 6 to Level 7 +```bash +find / -user bandit7 -group bandit6 -size 33c +``` +> finds the file address of the file owned by user bandit7 and group bandit6 and of size 33 bytes +```bash +cat /var/lib/dpkg/info/bandit7.password +``` +> gives the password stored in the file found above +**password : morbNTDkSW6jIlUc0ymOdMaLnOlFVAaj** +exit and login to next level using ssh + +### Level 7 to Level 8 +```bash +ls -alps +``` +> lists all the directory contents of bandit7 +```bash +cat data.txt +``` +> gives the contents of the file data.txt +```bash +grep millionth data.txt +``` +> gives the password next to the word millionth in data.txt +exit and login to next level using ssh +**password : dfwvzFQi4mU0wfNbFOe9RoWskMLg7eEc** + +### Level 8 to Level 9 +```bash +ls -alps +``` +> lists all the directory contents of bandit8 +```bash +cat data.txt +``` +> gives the contents of the file data.txt +```bash +sort data.txt | uniq -u +``` +> sorts the lines in data.txt and prints only the unique line which is the password +exit and login to next level using ssh +**password : 4CKMh1JI91bUIZZPXDqGanal4xvAg0JM** + +### Level 9 to Level 10 +```bash +ls -alps +``` +> lists all the directory contents of bandit9 +```bash +cat data.txt +``` +> gives the contents of the file data.txt +```bash +ls +``` +```bash +file data +``` +> shows the type of the file data which is gzip + +```bash +strings data.txt +``` +> converts data in data.txt in strings +```bash +strings data.txt | grep === +``` +> prints strings succeeded by === in data.txt +exit and login to next level using ssh +**password : FGUW5ilLVJrxX9kMYMmlN4MgbpfMiqey** + +### Level 10 to Level 11 +```bash +ls -alps +``` +> lists all the directory contents of bandit10 +```bash +cat data.txt +``` +> gives the contents of the file data.txt +```bash +base64 -d data.txt +``` +> decodes the base64 encoded data in data.txt +exit and login to next level using ssh +**password : dtR173fZKb0RRsDFSGsg2RWnpNVj3qRr** + +### Level 11 to Level 12 +```bash +ls -alps +``` +> lists all the directory contents of bandit11 +```bash +cat data.txt +``` +> gives the contents of the file data.txt +```bash +cat data.txt | tr [a-zA-Z] [n-za-mN-ZA-M] +``` +> rotates every letter in data.txt by 13 places to give the password +exit and login to next level using ssh +**password : 7x16WNeHIi5YkIhWsfFIqoognUTyj9Q4** + +### Level 12 to Level 13 +```bash +ls +``` +> lists all the directory contents of bandit12 +```bash +cat data.txt +``` +> gives the contents of the file data.txt +mkdir /tmp/pssd (creates a new directory pssd under /tmp) +```bash +cp data.txt /tmp/pssd +``` +> copies contents of data.txt to /tmp/pssd +```bash +cd /tmp/pssd +``` +> changes working directory to /tmp/pssd +```bash +ls +``` +> lists all the directory contents of /tmp/pssd +```bash +xxd -r data.txt > data +``` +> creates a hexdump of data.txt to data +```bash +ls +``` +```bash +file data +``` +> Shows the type of file "data" is +```bash +mv data file.gz +``` +> renames data to file.gz +```bash +ls +``` +```bash +gzip -d file.gz +``` +> compresses gzip type file.gz +```bash +ls +``` +```bash +file file +``` +> Shows the type of "file" after compression +```bash +mv file file.bz2 +``` +> Renames file to file.bz2 +```bash +bzip2 -d file.bz2 +``` +> Compresses bzip2 type file.bz2 +```bash +ls +``` +```bash +file file +``` +> Shows the type of "file" after compression +```bash +mv file file.gz +``` +> renames data to file.gz +```bash +gzip -d file.gz +``` +> compresses gzip type file.gz +```bash +ls +``` +```bash +file file +``` +> Shows the type of "file" after compression +```bash +mv file file.tar +``` +> renames data to file.tar +```bash +tar xf file.tar +``` +> Creates a compressed archive of file.tar +```bash +ls +``` +```bash +rm file.tar +``` +> removes file.tar +```bash +rm data.txt +``` +> removes data.txt +```bash +ls +``` +```bash +file data5.bin +``` +> Shows the type of "data5.bin" +```bash +mv data5.bin data.tar +``` +> renames data5.bin to data.tar +```bash +tar xf data.tar +``` +> Creates a compressed archive of data.tar +```bash +ls +``` +```bash +file data6.bin +``` +> Shows the type of "data6.bin" +```bash +mv data6.bin data.bz2 +``` +> renames data6.bin to data.bz2 +```bash +bzip2 -d data.bz2 +``` +> Compresses bzip2 type data.bz2 +```bash +ls +``` +```bash +file data +``` +> Shows the type of "data" after compression +```bash +mv data data.tar +``` +> renames data to data.tar +```bash +ls +``` +```bash +tar xf data.tar +``` +> Creates a compressed archive of data.tar +```bash +ls +``` +```bash +file data8.bin +``` +> Shows the type of "data8.bin" +```bash +mv data8.bin data.gz +``` +> renames data8.bin to data.gz +```bash +gzip -d data.gz +``` +> compresses gzip type data.gz +```bash +ls +``` +```bash +file data +``` +> Shows the type of "data" after compression +```bash +cat data +``` +> gives the password stored in "data" +exit and login to next level using ssh +**password : FO5dwFsc0cbaIiH0h8J2eUks2vdTDwAn** + +### Level 13 to Level 14 +```bash +ls +``` +> lists all the directory contents of bandit13 +```bash +ssh -i sshkey.private bandit14@localhost -p 2220 (sshkey.private helps us login to the next level) +``` + +### Level 14 to Level 15 +```bash +cat /etc/bandit_pass/bandit14 +``` +> gives the password for the current level as specified in the previous level +**password for level 14: MU4VWeTyJk8ROof1qqmcBPaLh7lDCPvS** +```bash +nc localhost 30000 then enter password found above and this gives password for next level. +``` +**password for level 15: 8xCjnmgoKbGLhHFAZlGE5Tmu4M2tKJQo** + +THE END!!!!!!!!! \ No newline at end of file From 78f5377d6d4c9447aa298c6d7c03fbec95034c2a Mon Sep 17 00:00:00 2001 From: Paveetss Date: Wed, 14 May 2025 01:41:50 +0530 Subject: [PATCH 2/2] Add files via upload --- Dockerfile | 33 ++++++++ Makefile | 16 ++++ admin.cpp | 80 ++++++++++++++++++ admin.h | 28 ++++++ admin.o | Bin 0 -> 150368 bytes content.cpp | 40 +++++++++ content.h | 69 +++++++++++++++ content.o | Bin 0 -> 23056 bytes content.txt | 40 +++++++++ init_content.cpp | 51 +++++++++++ init_content.h | 11 +++ init_content.o | Bin 0 -> 519848 bytes main.cpp | 215 +++++++++++++++++++++++++++++++++++++++++++++++ main.o | Bin 0 -> 129648 bytes persistence.cpp | 77 +++++++++++++++++ persistence.h | 21 +++++ persistence.o | Bin 0 -> 200848 bytes user.cpp | 98 +++++++++++++++++++++ user.h | 49 +++++++++++ user.o | Bin 0 -> 102848 bytes users.txt | 1 + 21 files changed, 829 insertions(+) create mode 100644 Dockerfile create mode 100644 Makefile create mode 100644 admin.cpp create mode 100644 admin.h create mode 100644 admin.o create mode 100644 content.cpp create mode 100644 content.h create mode 100644 content.o create mode 100644 content.txt create mode 100644 init_content.cpp create mode 100644 init_content.h create mode 100644 init_content.o create mode 100644 main.cpp create mode 100644 main.o create mode 100644 persistence.cpp create mode 100644 persistence.h create mode 100644 persistence.o create mode 100644 user.cpp create mode 100644 user.h create mode 100644 user.o create mode 100644 users.txt diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..eac927d --- /dev/null +++ b/Dockerfile @@ -0,0 +1,33 @@ +# Base image with g++ and build tools +FROM ubuntu:22.04 + +# Prevent prompts from tzdata +ENV DEBIAN_FRONTEND=noninteractive + +# Install dependencies +RUN apt-get update && apt-get install -y \ + g++ \ + make \ + build-essential \ + nano \ + cmake \ + git \ + && rm -rf /var/lib/apt/lists/* + +# Create app directory +WORKDIR /app + +# Copy all project files to /app in container +COPY . . + +# Compile the code +RUN make + +# Set the default command to run the compiled app +CMD ["./Netflix"] + +# Build Docker Image +docker build -t netflix-app . + +# Run Docker Image +docker run -it netflix-app diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..732f38c --- /dev/null +++ b/Makefile @@ -0,0 +1,16 @@ +CXX = g++ +CXXFLAGS = -std=c++17 -Wall +SOURCES = main.cpp user.cpp admin.cpp content.cpp persistence.cpp init_content.cpp +OBJECTS = $(SOURCES:.cpp=.o) +TARGET = Netflix + +all: $(TARGET) + +$(TARGET): $(OBJECTS) + $(CXX) $(CXXFLAGS) -o $(TARGET) $(OBJECTS) + +%.o: %.cpp + $(CXX) $(CXXFLAGS) -c $< -o $@ + +clean: + rm -f *.o $(TARGET) diff --git a/admin.cpp b/admin.cpp new file mode 100644 index 0000000..79527cc --- /dev/null +++ b/admin.cpp @@ -0,0 +1,80 @@ +#include "admin.h" +#include + +using namespace std; + +Admin::Admin(const string& uname, const string& pwd) + : username(uname), password(pwd) {} + +bool Admin::login(const string& uname, const string& pwd) const { + return uname == username && pwd == password; +} + +void Admin::addMovie(vector>& library) { + string title, genre; + double rating, rent_cost, purchase_cost; + int duration; + + cout << "Enter Movie Title: "; + cin.ignore(); + getline(cin, title); + cout << "Genre: "; + getline(cin, genre); + cout << "Rating (0.0 - 10.0): "; + cin >> rating; + cout << "Duration (minutes): "; + cin >> duration; + cout << "Rent Cost: ₹"; + cin >> rent_cost; + cout << "Purchase Cost: ₹"; + cin >> purchase_cost; + + library.push_back(make_shared(title, genre, rating, duration, rent_cost, purchase_cost)); + cout << "Movie added successfully.\n"; +} + +void Admin::addTVShow(vector>& library) { + string title, genre; + double rating, rent_cost, purchase_cost; + int seasons, episodes; + + cout << "Enter TV Show Title: "; + cin.ignore(); + getline(cin, title); + cout << "Genre: "; + getline(cin, genre); + cout << "Rating (0.0 - 10.0): "; + cin >> rating; + cout << "Number of Seasons: "; + cin >> seasons; + cout << "Episodes per Season: "; + cin >> episodes; + cout << "Rent Cost per Season: ₹"; + cin >> rent_cost; + cout << "Purchase Cost per Season: ₹"; + cin >> purchase_cost; + + library.push_back(make_shared(title, genre, rating, seasons, episodes, rent_cost, purchase_cost)); + cout << "TV Show added successfully.\n"; +} + +void Admin::removeContent(vector>& library, const string& title) { + for (auto it = library.begin(); it != library.end(); ++it) { + if ((*it)->getTitle() == title) { + library.erase(it); + cout << "Content \"" << title << "\" removed successfully.\n"; + return; + } + } + cout << "Content titled \"" << title << "\" not found.\n"; +} + +void Admin::checkUserCharges(const vector& users, const string& uname) const { + for (const auto& user : users) { + if (user.getUsername() == uname) { + cout << "User \"" << uname << "\" has ₹" << user.getChargesDue() << " due.\n"; + return; + } + } + cout << "User \"" << uname << "\" not found.\n"; +} diff --git a/admin.h b/admin.h new file mode 100644 index 0000000..0d218c7 --- /dev/null +++ b/admin.h @@ -0,0 +1,28 @@ +#ifndef ADMIN_H +#define ADMIN_H + +#include +#include +#include +#include "content.h" +#include "user.h" + +using namespace std; + +class Admin { +private: + string username; + string password; + +public: + Admin(const string& uname = "admin", const string& pwd = "admin123"); + + bool login(const string& uname, const string& pwd) const; + + void addMovie(vector>& library); + void addTVShow(vector>& library); + void removeContent(vector>& library, const string& title); + void checkUserCharges(const vector& users, const string& username) const; +}; + +#endif // ADMIN_H diff --git a/admin.o b/admin.o new file mode 100644 index 0000000000000000000000000000000000000000..37c89bdb12c2749950925e7cdf617d034d7fda05 GIT binary patch literal 150368 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 +#include + +using namespace std; + +class Content { +protected: + string title; + string genre; + double rating; + bool is_rented; + bool is_purchased; + +public: + Content(const string& t, const string& g, double r); + + virtual void display() const = 0; + virtual string getType() const = 0; + + string getTitle() const; + string getGenre() const; + double getRating() const; + bool isRented() const; + bool isPurchased() const; + + void markRented(); + void markReturned(); + void markPurchased(); + + virtual ~Content() = default; +}; + +class Movie : public Content { +private: + int duration; // in minutes + double rent_cost; + double purchase_cost; + +public: + Movie(const string& t, const string& g, double r, int d, double rent, double purchase); + + void display() const override; + string getType() const override; + + double getRentCost() const; + double getPurchaseCost() const; +}; + +class TVShow : public Content { +private: + int seasons; + int episodes_per_season; + double rent_cost_per_season; + double purchase_cost_per_season; + +public: + TVShow(const string& t, const string& g, double r, int s, int eps, double rent, double purchase); + + void display() const override; + string getType() const override; + + double getRentCostPerSeason() const; + double getPurchaseCostPerSeason() const; +}; + +#endif // CONTENT_H diff --git a/content.o b/content.o new file mode 100644 index 0000000000000000000000000000000000000000..73fe07ffc34a50380708ee701036379b3fa0e443 GIT binary patch literal 23056 zcmds9eQ;FQb$^n;#%{16!QYN8u(9z6vQ`L?!NvlyurePOXoZO}ek`j++FH^oyDKc* zkl>2A$O<)e-8gPM6W66v+_*Dj{1Mwp9ocv=o_1pX@FdhF4b8Y?8r(5;+8NbxhMwPj z=e&3J?t37C`$v0+xA(r^Jzw|Sb3fjFPkbZ3a#>|Xg(IoLS>yzFf;!IOr9rvL6q}rO zCuwM}qWdq?1-@(Os-bH-T{Gwcb{*$4DZie}H&8x{%QsSf6PItM{1z_Hro5KRw{l*` zd5rUV%I9#of%3U@&7*5RV~v#G#^nW+FQn^sy6#|X5#@Jsxry?{TwcO?Gv#PH+7ah` z8Rg5loZx%~P4(5EwkL-EwJkCD(X7PK_T!16{$q)u_9LHEPmLc=?7o<2oWyXP z@F^zS-8zYKA~~2C`uTCcc6aM6f{$46C)HEphe=XX0=x&CT8*fKO>3MJGoU#!bifE5 z9GR3DdfSsWL_)YYym9oM17aZ=IE4%xB?C_q)5(Nq3ElrJV2BgLp3`u^$kTB^K2ea} zO^Gdu>aUN`Pw&V^C6g(tUv6sM7}yq|Ysyh-cg3C%8SqCqzNVCZ@S`Tb5SeHKjKa!cep7z z2C1h}wcd33SX7Z+o6bzE{V1dC2nF%sj>PbUnV3@&L-FIWk;Lx!he3a}e@Om3lGr`j z^SA0rMMYz(BXP4Qq&V}$)iR{Cq+mG7U_Fv39ak#m(e~(=$EZMqLntC5bm>qW6UpZg zrNiw8Wj)r$vv1B2lEi4jDhe zVto8hPn|lY)`r24YRqzLme%;_D;VcHM~W9wr_fsK2|6)Z-;r3yId!UH@*>jKKJg*v z$qFhEa6x=xr?VsM=At=QIL?OJ;RNQ1h!ld=)oK`nP%I3mqfO*^pdU z)7F)H(39GhNfmOv1y5GIFI&iUWD2)>C@UjrJ`e~kfs*SW(Q!7X3fZ(SY)y4%I|6?o61_dlX!Xljj89g->@>bv{RHhZ0;<7}>L@;r z=tW|b7KyjxC*h|P6BC2+lNAT!AJdMion~~}4^>b^#y?hT>fp(Wog@7}GnK>bqqI~^ zGwV%pqFD;g&_}utv2G>EoI_+dt-|fEXtS_(4R6FAgsM3nhTfptS1`w56Y@)M=^5NU z;uJ5Y3KAi4(>{`@IDBH_D+oMV2eE^pYZXa^G=JF(*0vHYM*=~5DfHTBEpvMNxVtnI zN$E+ojSPk_+TDn5zr@O(skrhB=TF*0lLwyZaUtOu*@<5?<&nzf$>;SG0o_Vn#Y3$t z4d?ma1=W?pk7s^dNYBy*oxY6tU{&Q4ft;PFql9OApQbCQ-wT{lRQ+3CwK;R}`PT>h zA8`F8$fX^tg8B)(N=MaS$Mu(L{?!5h(lgX|oS}Xv*Du!c2LkzfxgKXAzWrN*`nS0L zVO?M82|z!6!1c?KOZ%%9RY1aZ1pNcoKSAXQbon&sr$+)kw@~mPO~;SOQGQ-|hWc)< ze@yeU0@(R2uHR5%=UU&+BG;eE&iBq>$A6xoei{#sncB|#0zWixeUGlM>@WmqN0RGt z7UuhDoyQM<-_G?1s9fgnmjXRcGab&fd^z2LoSj@BCx6*;s^%NFnQ{67(?!Mi1jFn& z7im55z>e#MF-Xd?{$?aavoRsvMl$mZvHQr?};*$}tgAR#D}c$Oyr4 z+FPEgyp^D=qRMF~!vIv76XEizDhDUR<*CY?5SQZU!Ak1)it|0(#2OWG<_r8D#!ZY7 zw%3sHL}SX{&xlJf^@gU1O}p|G_5gsbty=9F5xr$)tT3B!gm-v=-(dZ ze2#GJ5A3vofG?^zf0haM6aDl`oOXK&djTY@A=AB`g1MKT`^O0Rmy&D3^sb4(e;6TW z6VZp+`5fcV8f$p(K;=V>zh~heGJYQEL7MJmW}^i8vlusXDAip?b1Lvf7LK(6c#?6m zXCV63jCWi3?=voY0HOaQ!e^-QzL@QKG6Mf=gHIQ${Soy;!o&Rh6T)HV(`?Vf%y|LL zmD8O@Uyk(SG{VE^?`QmK@*k4fV^CfoJWTKQ2>hi8{Bjy9VREjGz-JQBOH1^Wxdi9?=gNAwGT<~PZ(dsxY-j?{UVwIraO46 z+uNs_YEGbBjW!Wnpnc*bVlGW5k5n$FW3_yefa|5!Fpu&QiN|Z zxOkWMK7{W#xOvh5yJPk|lux@5a)NbA=7B|ohuOIy0{>nFek=l?`Fr8=w?yDCM&Q4V zz$bqpT>hE}+>O9;N7$_&g!^J^NGy{XQeV*{2uzFBtk@ z9T)j;82omhUV84`2>M?b`OAEI>C;~mUgM)d;dg`!O@Pw-ZCa|QJ4<{>*2j8-$9M;Xc@FlOsPJbI^xu!b4@BS&ox|c>qBh;v=eYN_6<0R8 zZZ?lL5QhB$SPi2dRmUO%=ML+R) z+kCf!?C=FGog3eZ`|*p4)w_$kyK`x`E8CIDpS_&sxh-vT+<3foMSATDD#02)6cVA{ z8IatSw{2c`rnj@$1rgxB&2>9_`#r~$IzbbXtBK87dQWXWv!#|;1_s=|OrDPDsZ)yE z+^uyaE4fZQes)f3j!{3gHJCv1mF0C{59o?;4d*EI#+RkZ&Wjip)lI!^J zG7ySzINKicgsxuU37y}OE%bG#wi(;oiVf*pKPH&AVt1jXe1yc;5;n)1BXSh^nN&|p zI_bvS=DOaXF?^BJMhJJ(P1X_reD`z>qR1x=$ruf9c(yIqU5K0M$CPM-yVq|HB5+$@ zX#kozi=zB2XQ<{_`OIQOdJ%w$IQ@W|?s~x8lFD`~V`4ExG(~PR`O4GIUXRVC8i})@ zmglQ;ix~+TIT0u4h}?4u8;KhhRuVX?R|p#Bf2pjmQ~qep=+hM-(Y#hqKlrC z>oZ@aQIY1UfBdtgwGi=W_c~f`#=THlLeD-1>qBC2{MO8&7reCArn=pZR55k71ERE1 zG_YEOCHJiSuHHJg&^!{4Z%w*wjc!}9zHUn{|6nTL;bw~&dTXAeok*(F%ukIpaTQa& z>5So^$uKrIpz(GqG%>~Ic4W6~$>cLc=oV>Wh*NxcAwnD!Og>LKRm^ne^4m@?Zhjd( z7G|^CAbEAJdrnqSgXiUG2bb${Q|WZ3PzcQPnyvRFv}el}T)d=r`)FTC{%L{hHn%3R zP4HS*?8@gJq#p02jbbLB&*gb*GyYz>4W9 zav|%cyHhkKFpTN3XG;#7fn-}?cCyX4#NvFBsuT4@!g6ZXG22&9fe=7@OKoh<^MJU{}rF(Krd_-`Txc^?8hmB*dOC( zU}Sh^7W#z>$M@iZH!}|TI7JZrD+*tz@U)Tx`E-nDQm>-da&{_Q%lTtVj+_BJrRcSs zA1EBB8e->$sl;^0p?v56^qt+z$tT27lKM@~-eSM*xW;|fR2iy!{Nl5-dP;dw>hr08E!_+o`0 zjle%txE>cDDSU~NvkQ)-WXJzwjKgm@wUYS%7lp&0t#l!sP`Hl&-!P6$`{x1 zzr?uom&E_oieAfUP`H+ZZ!VEUj>JFC>5*)EQVQ4o{(vQCgU9Y{RrK1PM-{H){|QS@ z7t8scqSta>P`H-!cb1&(Ea#A-*K&?2T(|4jmYhFfIsc{TwVcW4c?9sAmUAiN;%6Bb zGZej+vrgf9Tx2Xcd)b~oMc+i2jH9n9T#t)qBJl4k{CXv4zrvR&d?p{DqFop|qIWjq z@IzkV4T`>?@I?yOauSSV9_&~2txEn@h2KbJBO?+dB7uGlU4pj& zqy&5|U4q{SkP>iw-5~fk0a60qMwj4!4v-S?yXg}AuK-d4uH)oYgL=5O|0;#IQ(5Hr z>lI3fJRt8R0S>VKWl^gSUd>Ptgk; z@&%6?ce-6N)`-o2_XB$x0dNxez|HrUjMs1uyo<}obi1+&*X`2#7V?b5iApj|z53BUGRuMnwv&}+RyaymIVAsVBcK1HYP`Kpp5Md-yGA>RXO{06z9 zyoSr5MGQ$=!3E$m1f+Zumx1GwBz+C+JOL@+#bu#?mhbmj_t&9T)y+@vvB!tV~>T)cN_aHT)x|QRpGElz6?B~a1`Zx zj!_Gj?>X?j5)!H}G$rq+QQ`E7fS=YYT;@Vl4k(;n75nL7g~QI9x#k&#o9{~*A5nO< zFU4`*Q8?r@aour+%iMsfNj!MaF6k@avlRYC0GtvEm$?yDT?(Hj#FXz+_{9p}r|?S@ zen{c4Nxm06ZsGp?P+Qp6Q%r4kYU%Zrmv>1ipXpB3(s51Esl_p+Q@goPaOkxzqqXLI z&we4U-v!rprsV1d_J|!Hq-O>>Ap#+ zP3L-g@OMwO^cS9)TKZF^+2%bq-_wULwSD;{R?&nebE16%`7Vuv_4*pHdFMA&FL*`iZcQL=VALkTf26lmyLt}5cBK!#o5YO^&btFwf$Fx=*Kz2Sovp#=*M&LSo!Nh^y9gEto*l!=*RQ(SoxQR=${e7Uqcv3@$8^e zEA#j1he;y99$hDylbSS0<xAjO&+x8Ez{R!rS{aF8O`yV4LO#k1o{#%(}GF$(n zR1xOCkr4k)Ct6!S&bOi8mV1o#zfW~K3BO=}ONB7|U*m`VnL@}pXmvV9H(~tv`vfGM z&FN&@`A<|C*8Y zvi<`QqLQtDbAJ+x!)|0L9<6^vg%=|9A7lM`{Njwp z){l83O#c?vFMn4fI_>sX5D@17Df}XA2ZU2X`!S{3`tdj3Vfyj+3P_iDng7e;{QJET z{BJP7K7#_2&Hrfx|GUhOJ+DqSf0ib0U{xeXr<2St{+Bvwzub2af0+OFG`TmNd-f2R5K*$DlO zA^H*0w*EI*zwQ4WtY7RWR+EHZ?tdJizl-&2|D#KUU;K~1wGV6m{xSOhml67pg|vS` zi2mP2=>O+2`hPS+{}d>rB>qGH-%gj^{!1u$!{UERHMj$Q?=Ik%`>Dhq7XMAGKf#31 zkG+hoe{O{SCe|IG3?&~7-?+Vf16rz7M>#wv1)_T@&>$C4WBkbQaM*BBM*nc?0 z{^k(-zY$^o0PDB5&!(@%cgUZNuzv^hPtn9ww%h-Bg#DK-^cZ#g;rUhgrC)y#VgDZ1 z&)X>93gH*v?};Bng@!>%dWQLJdbyYUpx9r+P4BGPez6nr+d`M{34WCAx96{YXV5R| zelGg0_}dhse?^G?Np${&@hg57x%*i^o= +#include +#include "init_content.h" + +using namespace std; + +void initializeContent(vector>& content_library) { + + content_library.push_back(make_shared("Inception", "Sci-Fi", 8.8, 148, 50, 200)); + content_library.push_back(make_shared("The Dark Knight", "Action", 9.0, 152, 45, 180)); + content_library.push_back(make_shared("Interstellar", "Sci-Fi", 8.6, 169, 55, 220)); + content_library.push_back(make_shared("Parasite", "Thriller", 8.6, 132, 40, 170)); + content_library.push_back(make_shared("The Matrix", "Sci-Fi", 8.7, 136, 50, 190)); + content_library.push_back(make_shared("Gladiator", "Action", 8.5, 155, 45, 175)); + content_library.push_back(make_shared("Joker", "Drama", 8.4, 122, 40, 160)); + content_library.push_back(make_shared("La La Land", "Musical", 8.0, 128, 35, 150)); + content_library.push_back(make_shared("Titanic", "Romance", 7.9, 195, 50, 200)); + content_library.push_back(make_shared("Shutter Island", "Mystery", 8.2, 138, 40, 170)); + content_library.push_back(make_shared("The Godfather", "Crime", 9.2, 175, 55, 230)); + content_library.push_back(make_shared("Avengers: Endgame", "Superhero", 8.4, 181, 60, 250)); + content_library.push_back(make_shared("Forrest Gump", "Drama", 8.8, 142, 45, 180)); + content_library.push_back(make_shared("Fight Club", "Thriller", 8.8, 139, 45, 190)); + content_library.push_back(make_shared("The Prestige", "Mystery", 8.5, 130, 40, 170)); + content_library.push_back(make_shared("Coco", "Animation", 8.4, 105, 35, 140)); + content_library.push_back(make_shared("Whiplash", "Drama", 8.5, 107, 40, 160)); + content_library.push_back(make_shared("Toy Story", "Animation", 8.3, 81, 30, 120)); + content_library.push_back(make_shared("The Lion King", "Animation", 8.5, 88, 30, 130)); + content_library.push_back(make_shared("The Social Network", "Biography", 7.7, 120, 35, 150)); + + content_library.push_back(make_shared("Breaking Bad", "Crime", 9.5, 5, 13, 100, 400)); + content_library.push_back(make_shared("Stranger Things", "Sci-Fi", 8.7, 4, 9, 90, 350)); + content_library.push_back(make_shared("Game of Thrones", "Fantasy", 9.2, 8, 10, 110, 500)); + content_library.push_back(make_shared("Friends", "Comedy", 8.9, 10, 24, 70, 300)); + content_library.push_back(make_shared("The Office", "Comedy", 8.9, 9, 22, 70, 280)); + content_library.push_back(make_shared("Sherlock", "Mystery", 9.1, 4, 3, 90, 360)); + content_library.push_back(make_shared("Dark", "Sci-Fi", 8.8, 3, 8, 85, 320)); + content_library.push_back(make_shared("Narcos", "Crime", 8.8, 3, 10, 80, 300)); + content_library.push_back(make_shared("The Crown", "Drama", 8.6, 5, 10, 85, 320)); + content_library.push_back(make_shared("Money Heist", "Thriller", 8.3, 5, 10, 85, 330)); + content_library.push_back(make_shared("Peaky Blinders", "Crime", 8.8, 6, 6, 90, 340)); + content_library.push_back(make_shared("The Mandalorian", "Sci-Fi", 8.7, 3, 8, 90, 320)); + content_library.push_back(make_shared("Better Call Saul", "Crime", 8.9, 6, 10, 100, 380)); + content_library.push_back(make_shared("The Witcher", "Fantasy", 8.2, 3, 8, 85, 310)); + content_library.push_back(make_shared("Brooklyn Nine-Nine", "Comedy", 8.4, 8, 22, 75, 290)); + content_library.push_back(make_shared("The Boys", "Superhero", 8.7, 3, 8, 90, 340)); + content_library.push_back(make_shared("Lucifer", "Fantasy", 8.1, 6, 10, 85, 310)); + content_library.push_back(make_shared("House of Cards", "Drama", 8.7, 6, 13, 80, 300)); + content_library.push_back(make_shared("The 100", "Sci-Fi", 7.6, 7, 13, 75, 270)); + content_library.push_back(make_shared("Rick and Morty", "Animation", 9.2, 6, 10, 80, 320)); +} diff --git a/init_content.h b/init_content.h new file mode 100644 index 0000000..b79feb9 --- /dev/null +++ b/init_content.h @@ -0,0 +1,11 @@ +#ifndef INIT_CONTENT_H +#define INIT_CONTENT_H + +#include +#include +#include "content.h" +using namespace std; + +void initializeContent(vector> &contents); + +#endif // INIT_CONTENT_H diff --git a/init_content.o b/init_content.o new file mode 100644 index 0000000000000000000000000000000000000000..d942e311d6533bdbe86216e801c0df458c67d5fa GIT binary patch literal 519848 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%0A*kU+U~z#b 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 literal 0 HcmV?d00001 diff --git a/main.cpp b/main.cpp new file mode 100644 index 0000000..378bb6d --- /dev/null +++ b/main.cpp @@ -0,0 +1,215 @@ +#include +#include +#include +#include +#include "content.h" +#include "user.h" +#include "admin.h" +#include "persistence.h" +#include "init_content.h" + +using namespace std; + +vector users; +vector> content_library; +Admin admin; + +void userMenu(User& user); +void adminMenu(); + +User* findUser(const string& username) { + for (auto& u : users) { + if (u.getUsername() == username) + return &u; + } + return nullptr; +} + +void clearInput() { + cin.clear(); + cin.ignore(numeric_limits::max(), '\n'); +} + +void showContentByCategory(const string& type) { + cout << "Available " << type << "s:\n"; + for (const auto& c : content_library) { + if (c->getType() == type) { + c->display(); + cout << "------------------\n"; + } + } +} + +void searchContent() { + cout << "Search by:\n1. Title\n2. Genre\nChoice: "; + int choice; + cin >> choice; + clearInput(); + string query; + if (choice == 1) { + cout << "Enter title: "; + getline(cin, query); + for (const auto& c : content_library) + if (c->getTitle().find(query) != string::npos) + c->display(); + } else { + cout << "Enter genre: "; + getline(cin, query); + for (const auto& c : content_library) + if (c->getGenre().find(query) != string::npos) + c->display(); + } +} + +void userMenu(User& user) { + while (true) { + cout << "\nUser Menu:\n"; + cout << "1. Browse Movies\n2. Browse TV Shows\n3. Search Content\n"; + cout << "4. Rent Content\n5. Return Content\n6. Purchase Content\n"; + cout << "7. View Rented Items\n8. View Purchased Items\n"; + cout << "9. View Charges\n10. Pay Charges\n0. Logout\nChoice: "; + + int ch; + cin >> ch; + clearInput(); + + if (ch == 0) break; + + string title, rent_date = "2025-05-13", due_date = "2025-05-20"; + switch (ch) { + case 1: showContentByCategory("Movie"); break; + case 2: showContentByCategory("TVShow"); break; + case 3: searchContent(); break; + case 4: + cout << "Enter title to rent: "; + getline(cin, title); + for (auto& c : content_library) + if (c->getTitle() == title && !c->isRented()) { + user.rentContent(c, rent_date, due_date); + user.addCharge((c->getType() == "Movie") ? + dynamic_cast(c.get())->getRentCost() : + dynamic_cast(c.get())->getRentCostPerSeason()); + break; + } + break; + case 5: + cout << "Enter title to return: "; + getline(cin, title); + user.returnContent(title); + break; + case 6: + cout << "Enter title to purchase: "; + getline(cin, title); + for (auto& c : content_library) + if (c->getTitle() == title) { + user.purchaseContent(c); + user.addCharge((c->getType() == "Movie") ? + dynamic_cast(c.get())->getPurchaseCost() : + dynamic_cast(c.get())->getPurchaseCostPerSeason()); + break; + } + break; + case 7: user.viewRentedItems(); break; + case 8: user.viewPurchasedItems(); break; + case 9: cout << "Total charges due: ₹" << user.getChargesDue() << endl; break; + case 10: user.payCharges(); break; + default: cout << "Invalid option.\n"; + } + } +} + +void adminMenu() { + while (true) { + cout << "\nAdmin Menu:\n"; + cout << "1. Add Movie\n2. Add TV Show\n3. Remove Content\n"; + cout << "4. Check User Charges\n0. Logout\nChoice: "; + + int ch; + cin >> ch; + clearInput(); + + if (ch == 0) break; + + string title, uname; + switch (ch) { + case 1: admin.addMovie(content_library); break; + case 2: admin.addTVShow(content_library); break; + case 3: + cout << "Enter title to remove: "; + getline(cin, title); + admin.removeContent(content_library, title); + break; + case 4: + cout << "Enter username to check charges: "; + getline(cin, uname); + admin.checkUserCharges(users, uname); + break; + default: cout << "Invalid option.\n"; + } + } +} + +int main() { + users = Persistence::loadUsers(); + content_library = Persistence::loadContent(); + if (content_library.empty()) { + (content_library); + } + + while (true) { + cout << "\nWelcome to Netflix!\n"; + cout << "1. Sign Up\n2. Login\n3. Admin Login\n0. Exit\nChoice: "; + int ch; + cin >> ch; + clearInput(); + + if (ch == 0) break; + + string uname, pwd; + switch (ch) { + case 1: + cout << "Choose username: "; + getline(cin, uname); + if (findUser(uname)) { + cout << "Username already exists!\n"; + break; + } + cout << "Choose password: "; + getline(cin, pwd); + users.emplace_back(uname, pwd); + cout << "User registered successfully!\n"; + break; + + case 2: + cout << "Username: "; + getline(cin, uname); + cout << "Password: "; + getline(cin, pwd); + if (User* u = findUser(uname)) { + if (u->checkPassword(pwd)) { + cout << "Login successful!\n"; + userMenu(*u); + } else cout << "Wrong password.\n"; + } else cout << "User not found.\n"; + break; + + case 3: + cout << "Admin Username: "; + getline(cin, uname); + cout << "Admin Password: "; + getline(cin, pwd); + if (admin.login(uname, pwd)) { + cout << "Admin login successful!\n"; + adminMenu(); + } else cout << "Invalid admin credentials.\n"; + break; + + default: + cout << "Invalid option.\n"; + } + + Persistence::saveUsers(users); + Persistence::saveContent(content_library); + } + return 0; +} diff --git a/main.o b/main.o new file mode 100644 index 0000000000000000000000000000000000000000..f20acd3ad34e0d6002090ece7620ab66b9352e34 GIT binary patch literal 129648 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 literal 0 HcmV?d00001 diff --git a/persistence.cpp b/persistence.cpp new file mode 100644 index 0000000..dd20e2d --- /dev/null +++ b/persistence.cpp @@ -0,0 +1,77 @@ +#include "persistence.h" +#include +#include +#include + +using namespace std; + +void Persistence::saveUsers(const vector& users, const string& filename) { + ofstream out(filename); + for (const auto& user : users) { + out << user.serialize() << endl; + } + out.close(); +} + +vector Persistence::loadUsers(const string& filename) { + vector users; + ifstream in(filename); + string line; + while (getline(in, line)) { + if (!line.empty()) + users.push_back(User::deserialize(line)); + } + in.close(); + return users; +} + +void Persistence::saveContent(const vector>& content, const string& filename) { + ofstream out(filename); + for (const auto& item : content) { + if (item->getType() == "Movie") { + auto* m = dynamic_cast(item.get()); + out << "Movie|" << m->getTitle() << "|" << m->getGenre() << "|" << m->getRating() + << "|" << m->getRentCost() << "|" << m->getPurchaseCost() << "|" << endl; + } else if (item->getType() == "TVShow") { + auto* t = dynamic_cast(item.get()); + out << "TVShow|" << t->getTitle() << "|" << t->getGenre() << "|" << t->getRating() + << "|" << t->getRentCostPerSeason() << "|" << t->getPurchaseCostPerSeason() << endl; + } + } + out.close(); +} + +vector> Persistence::loadContent(const string& filename) { + vector> content; + ifstream in(filename); + string line; + + while (getline(in, line)) { + if (line.empty()) continue; + + stringstream ss(line); + string type, title, genre, temp; + double rating, rent, purchase; + + getline(ss, type, '|'); + getline(ss, title, '|'); + getline(ss, genre, '|'); + getline(ss, temp, '|'); + rating = stod(temp); + getline(ss, temp, '|'); + rent = stod(temp); + getline(ss, temp, '|'); + purchase = stod(temp); + + if (type == "Movie") { + int dummy_duration = 120; + content.push_back(make_shared(title, genre, rating, dummy_duration, rent, purchase)); + } else if (type == "TVShow") { + int dummy_seasons = 3, dummy_eps = 10; + content.push_back(make_shared(title, genre, rating, dummy_seasons, dummy_eps, rent, purchase)); + } + } + + in.close(); + return content; +} diff --git a/persistence.h b/persistence.h new file mode 100644 index 0000000..0b166bc --- /dev/null +++ b/persistence.h @@ -0,0 +1,21 @@ +#ifndef PERSISTENCE_H +#define PERSISTENCE_H + +#include +#include +#include +#include "user.h" +#include "content.h" + +using namespace std; + +class Persistence { +public: + static void saveUsers(const vector& users, const string& filename = "users.txt"); + static vector loadUsers(const string& filename = "users.txt"); + + static void saveContent(const vector>& content, const string& filename = "content.txt"); + static vector> loadContent(const string& filename = "content.txt"); +}; + +#endif // PERSISTENCE_H diff --git a/persistence.o b/persistence.o new file mode 100644 index 0000000000000000000000000000000000000000..1f15ef7fa78935b395fb91a3412f57ff92797629 GIT binary patch literal 200848 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 literal 0 HcmV?d00001 diff --git a/user.cpp b/user.cpp new file mode 100644 index 0000000..51cee0e --- /dev/null +++ b/user.cpp @@ -0,0 +1,98 @@ +#include "user.h" +#include +#include +#include + +using namespace std; + +User::User(const string& uname, const string& pwd) + : username(uname), password(pwd), charges_due(0.0) {} + +string User::getUsername() const { + return username; +} + +bool User::checkPassword(const string& pwd) const { + return pwd == password; +} + +void User::rentContent(shared_ptr content, const string& rent_date, const string& return_due_date) { + content->markRented(); + rented_items.push_back({content, rent_date, return_due_date}); + cout << "Rented \"" << content->getTitle() << "\" until " << return_due_date << "\n"; +} + +bool User::returnContent(const string& title) { + for (auto it = rented_items.begin(); it != rented_items.end(); ++it) { + if (it->content->getTitle() == title) { + it->content->markReturned(); + rented_items.erase(it); + cout << "Returned \"" << title << "\" successfully.\n"; + return true; + } + } + cout << "No rented item found with title: " << title << "\n"; + return false; +} + +void User::purchaseContent(shared_ptr content) { + content->markPurchased(); + purchased_items.push_back(content); + cout << "Purchased \"" << content->getTitle() << "\" successfully.\n"; +} + +void User::viewRentedItems() const { + if (rented_items.empty()) { + cout << "No items currently rented.\n"; + return; + } + cout << "Rented Items:\n"; + for (const auto& item : rented_items) { + cout << "- " << item.content->getTitle() + << " | Rented On: " << item.rent_date + << " | Return By: " << item.return_due_date << "\n"; + } +} + +void User::viewPurchasedItems() const { + if (purchased_items.empty()) { + cout << "No items purchased.\n"; + return; + } + cout << "Purchased Items:\n"; + for (const auto& item : purchased_items) { + cout << "- " << item->getTitle() << "\n"; + } +} + +double User::getChargesDue() const { + return charges_due; +} + +void User::addCharge(double amount) { + charges_due += amount; +} + +void User::payCharges() { + cout << "Paid ₹" << charges_due << " successfully.\n"; + charges_due = 0.0; +} + +string User::serialize() const { + ostringstream oss; + oss << username << "|" << password << "|" << charges_due; + return oss.str(); +} + +User User::deserialize(const string& line) { + istringstream iss(line); + string uname, pwd; + double charges; + getline(iss, uname, '|'); + getline(iss, pwd, '|'); + iss >> charges; + + User user(uname, pwd); + user.addCharge(charges); + return user; +} diff --git a/user.h b/user.h new file mode 100644 index 0000000..85a8a6e --- /dev/null +++ b/user.h @@ -0,0 +1,49 @@ +#ifndef USER_H +#define USER_H + +#include +#include +#include +#include +#include "content.h" + +using namespace std; + +struct RentalInfo { + shared_ptr content; + string rent_date; + string return_due_date; +}; + +class User { +private: + string username; + string password; + vector rented_items; + vector> purchased_items; + double charges_due; + +public: + User(const string& uname, const string& pwd); + + string getUsername() const; + bool checkPassword(const string& pwd) const; + + // Core functionalities + void rentContent(shared_ptr content, const string& rent_date, const string& return_due_date); + bool returnContent(const string& title); + void purchaseContent(shared_ptr content); + + void viewRentedItems() const; + void viewPurchasedItems() const; + + double getChargesDue() const; + void addCharge(double amount); + void payCharges(); + + // Persistence support + string serialize() const; + static User deserialize(const string& line); +}; + +#endif // USER_H diff --git a/user.o b/user.o new file mode 100644 index 0000000000000000000000000000000000000000..0ccfaa0c82f6820663f6fb32c7f4ff06eabce19d GIT binary patch literal 102848 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 ZvH8pLFdRW2Z1k;v)1{_S{V+u7{~x;j;-CNk literal 0 HcmV?d00001 diff --git a/users.txt b/users.txt new file mode 100644 index 0000000..61d683f --- /dev/null +++ b/users.txt @@ -0,0 +1 @@ +paveets|123456|0