pranavkhuranaa / Mailboxer

A DSA project - Account Management System using C++ that allows users to manage their accounts and communicate with other users easily.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Mailboxer

forthebadge forthebadge forthebadge forthebadge forthebadge forthebadge forthebadge

📌 Introduction

The project, Mailboxer has been designed as an Account Management System using C++ that allows users to manage their accounts, communicate with other users, view list of received, sent, deleted, starred messages and to search for messages sent to/ received from a user.

⭐ Features

  1. Data structures used: Doubly linked list to store user accounts and two singly linked list per user to store sent and received messages.
  2. User can create an account, login and send a message to another existing user.
  3. Logged-in user can logout and create another account, login to another existing account, change password of an existing account or delete an existing account.
  4. User while logged-in in can view list of received, sent, deleted, starred messages and can also search for messages sent to/ received from an user.
  5. For every sent/ received message user can read it, delete it, mark it as important (star)/unstar.
  6. To display list of messages sent to/ received from an user or list of starred messages in the sent/ received singly linked list, we have used sequential search.
  7. Each time we find the message which satisfies the required condition it's reference gets stored in an vector. This vector helps us to read, delete or star/unstar a message in the list which we get as the result of sequential search. Refernces of deleted messages have been stored in a vector (trash).
  8. User can either permanently delete message from trash or simply view it.


⭐ How to get started?

forthebadge
You can refer to the following articles on the basics of Git and Github and also contact the Project Mentors, in case you are stuck:


⭐ Steps to follow 📜


1️⃣ Fork it 🍴

You can get your own fork/copy of Mailboxer by using the Fork button.


2️⃣ Clone it 👥

You need to clone (download) it to local machine using

$ git clone https://github.com/Your_Username/Mailboxer.git

This makes a local copy of repository in your machine.

Once you have cloned the Mailboxer repository in Github, move to that folder first using change directory command on linux and Mac.

# This will change directory to a folder Mailboxer
$ cd Mailboxer

Move to this folder for all other commands.


3️⃣ Set it up ⬆️

Run the following commands to see that your local copy has a reference to your forked remote repository in Github :octocat:

$ git remote -v
origin  https://github.com/Your_Username/Mailboxer.git (fetch)
origin  https://github.com/Your_Username/Mailboxer.git (push)

Now, lets add a reference to the original Mailboxer repository using

$ git remote add upstream https://github.com/pranavkhuranaa/Mailboxer.git

This adds a new remote named upstream.

See the changes using

$ git remote -v
origin    https://github.com/Your_Username/Mailboxer.git (fetch)
origin    https://github.com/Your_Username/Mailboxer.git (push)
upstream  https://github.com/pranavkhuranaa/Mailboxer.git (fetch)
upstream  https://github.com/pranavkhuranaa/Mailboxer.git (push)

4️⃣ Sync it ♻️

Always keep your local copy of repository updated with the original repository. Before making any changes and/or in an appropriate interval, run the following commands carefully to update your local repository.

# Fetch all remote repositories and delete any deleted remote branches
$ git fetch --all --prune

# Switch to `master` branch
$ git checkout master

# Reset local `master` branch to match `upstream` repository's `master` branch
$ git reset --hard upstream/master

# Push changes to your forked `Learning-Made-Easy` repo
$ git push origin master

5️⃣ Ready Steady Go... 🐢 🐇

Once you have completed these steps, you are ready to start contributing by checking our Help Wanted Issues and creating pull requests.


6️⃣ Running the work on your local machine 💻

To run the code and play with the app on your local machine, do:

  • if os == 'Windows':
    • We have tested the code in Dev C++ IDE and Code Blocks IDE (Both running MINGW).
    • To run the code in any IDE, simply open the file, click Execute > Run Click here for more instructions
  • if os == 'Linux or Unix or Mac':
    • You need to have GCC installed:
    • Go to the folder having the code(.cpp file).
    • Open the terminal, and type : g++ -o mailboxer mailboxer.cpp
    • Then run the script by typing : ./mailboxer

7️⃣ Create a new branch ‼️

Whenever you are going to make contribution. Please create seperate branch using command and keep your master branch clean (i.e. synced with remote branch).

# It will create a new branch with name Branch_Name and switch to branch Folder_Name
$ git checkout -b Folder_Name

Create a seperate branch for contibution and try to use same name of branch as of folder.

To switch to desired branch

# To switch from one folder to other
$ git checkout Folder_Name

To add the changes to the branch. Use

# To add all files to branch Folder_Name
$ git add .

Type in a message relevant for the code reveiwer using

# This message get associated with all files you have changed
$ git commit -m 'relevant message'

8️⃣ Share your work 🤩

Now, Push your awesome work to your remote repository using

# To push your work to your remote repository
$ git push -u origin Folder_Name

Then, go to your repository in browser and click on compare and pull requests. Then add a title and description to your pull request that explains your precious effort.


9️⃣ Get Featured in the Contributor's List! 👩‍💻👨‍💻

Finally, after your pull request has been merged, add another comment below the PR as follows

@all-contributors please add @<your_username> for <contributions>

In contributions, you need to type code if you have contributed to the code, or documentation if you contrubuted for the markdown files. Click here for more instructions

⭐ Help Contributing Guides 👑

We love to have articles and codes in different languages and betterment of existing ones.

Please discuss it with us first by creating new issue.

🎉 🎊 😃 Happy Contributing 😃 🎊 🎉


⭐ Language Used:

C++


💥 How to Contribute?

PRs Welcome Open Source Love svg2

  • Take a look at the Existing Issues or create your own Issues!
  • Wait for the Issue to be assigned to you after which you can start working on it.
  • Fork the Repo and create a Branch for any Issue that you are working upon.
  • Create a Pull Request which will be promptly reviewed and suggestions would be added to improve it.
  • Contact pranav.khuranaa@gmail.com for more information regarding contributions.

About

A DSA project - Account Management System using C++ that allows users to manage their accounts and communicate with other users easily.


Languages

Language:C++ 100.0%