Developed with the software and tools below.
E-suchana is devised to serve as a centralized platform for managing notices efficiently. E-suchana represents a paradigm shift in the way notices are managed and circulated within organizational settings. By leveraging cutting-edge technologies such as Next.js for frontend development and Node.js, Express.js, and MongoDB for backend infrastructure, the platform ensures seamless performance and scalability.
► Role Based Login
► User Registration (only Admin can)
► Automated Mailing System
► Notice Published in Hierarchical Level
► JsonWebToken Authentication
► Secure Routes
└── nms/
├── LICENSE.txt
├── controllers
│ ├── authLogin.controller.js
│ ├── cloudinarypublishNotice.js
│ ├── fetchNotice.controller.js
│ ├── fetchNt.controller.js
│ ├── image.controller.js
│ ├── publishNotice.controller.js
│ ├── register.controller.js
│ └── verifyotp.controller.js
├── helper
│ ├── mail.js
│ └── mailPass.js
├── index.js
├── middleware
│ └── jwtauthorization.controller.js
├── models
│ ├── imageNotice.model.js
│ ├── notice.model.js
│ ├── otp.model.js
│ └── user.model.js
├── package-lock.json
├── package.json
├── public
│ └── myNoticeImage-1708545010599.png
├── routers
│ ├── authorize.router.js
│ ├── notice.router.js
│ └── register.router.js
├── utils.js
└── vercel.json
.
File | Summary |
---|---|
index.js | ► Root File |
utils.js | ► Util File |
package.json | ► Packages of Project |
vercel.json | ► For Deployment |
middleware
File | Summary |
---|---|
jwtauthorization.controller.js | ► JWT Auth Middleware |
models
File | Summary |
---|---|
user.model.js | ► User Model |
notice.model.js | ► Notice Model |
imageNotice.model.js | ► Image Notice |
otp.model.js | ► OTP Model |
controllers
File | Summary |
---|---|
fetchNotice.controller.js | ► Notice Fetch |
authLogin.controller.js | ► Auth Login |
register.controller.js | ► Registration |
cloudinarypublishNotice.js | ► Cloudinary CDN |
verifyotp.controller.js | ► Verify Notice |
fetchNt.controller.js | ► Fetch Notice |
publishNotice.controller.js | ► Publish Notice |
image.controller.js | ► Image Controller |
helper
File | Summary |
---|---|
mailPass.js | ► Welcome Mail Controller |
mail.js | ► Notice Mail Controller |
routers
File | Summary |
---|---|
authorize.router.js | ► Authentication Routes |
register.router.js | ► Registration Routes |
notice.router.js | ► Notice Routes |
Requirements
Ensure you have the following dependencies installed on your system:
- JavaScript:
version x.y.z
- Node.js:
version x.y.z
- Clone the nms repository:
git clone https://github.com/raj4477/nms
- Change to the project directory:
cd nms
- Install the dependencies:
npm install
- Create an envronment file (.env) in root directory:
DB_URL=<MongoDB URL> MAIL_USER=<Mail ID> MAIL_PASS=<Password> JWT_KEY=<Secret Key> PORT=<PORT Number> CLOULD_NAME=<Cloud Name of Cloudinary> CLOULD_KEY=<Key of Cloudinary> CLOULD_SECRET=<Secret Key of Cloudinay>
Use the following command to run nms:
node index.js
Contributions are welcome! Here are several ways you can contribute:
- Submit Pull Requests: Review open PRs, and submit your own PRs.
- Join the Discussions: Share your insights, provide feedback, or ask questions.
- Report Issues: Submit bugs found or log feature requests for Nms.
Contributing Guidelines
- Fork the Repository: Start by forking the project repository to your GitHub account.
- Clone Locally: Clone the forked repository to your local machine using a Git client.
git clone https://github.com/raj4477/nms
- Create a New Branch: Always work on a new branch, giving it a descriptive name.
git checkout -b new-feature-x
- Make Your Changes: Develop and test your changes locally.
- Commit Your Changes: Commit with a clear message describing your updates.
git commit -m 'Implemented new feature x.'
- Push to GitHub: Push the changes to your forked repository.
git push origin new-feature-x
- Submit a Pull Request: Create a PR against the original project repository. Clearly describe the changes and their motivations.
Once your PR is reviewed and approved, it will be merged into the main branch.
This project is protected under the MIT License. For more details, refer to the LICENSE file.