Giter Site home page Giter Site logo

tcet-opensource / erp-backend Goto Github PK

View Code? Open in Web Editor NEW
34.0 1.0 38.0 1.11 MB

The TCET ERP System automates operations at TCET (Thakur College of Engineering and Technology). This streamlined Enterprise Resource Planning (ERP) system manages admissions, student records, financial aid, course scheduling, and fees. Built with Node.js, Express, and MongoDB, it offers a robust and scalable solution for all college activites.

License: GNU General Public License v2.0

JavaScript 99.88% CSS 0.03% Dockerfile 0.03% Shell 0.07%
open-source enterprise-resource-planning erp hacktoberfest express mongodb nodejs

erp-backend's Introduction

TCET ERP System

TCET ERP System is a project that aims to simplify and automate daily operations in TCET.

This ERP system will be used to manage various aspects of the operations of colleges, including admissions, registration, student records, financial aid, course scheduling, and fees. The ERP system would typically consist of multiple integrated modules that support these functions.

  • Technology stack: We will be using node.js and express for the backend along with NoSQL, that is, MongoDB as the database due to the modular nature of this project.

Hacktoberfest

Powered by:

mlh-logo-color

How to contribute

Read our workflow guide, and have a look at issues marked with the Hacktoberfest tag on it. Do not forget to read the rest of the README. For serious doubts, contact the project maintainers on our discord server.

Dependencies

All the dependencies used in this project will be listed in the package.json file from the root directory.

Installation

To start working on this project first you need to create .env file. This .env file will contain:

PORT You can set it on any port number you want. eg: 4000

TOKEN_SECRET which you will get by running following line in terminal

node -e "console.log(require('crypto').randomBytes(256).toString('base64'));

ENVIRONMENT Set this on 'local'

DB_URL For this parameter, you will need to open your account on MongoDB Atlas, don't forget to note down your account password, then create new cluster and through that you will get your connection string which will be your DB_URL in .env, make sure instead of "password" in connection string, you enter your own account password.

EMAIL_HOST, EMAIL_PORT, EMAIL_USER, EMAIL_PASS

For these above parameters, first you need to open an account on any SMTP server, we use mailtrap, then start testing where you will see show credentials in which you will get all the values we need which are host, port, username and password.

You don't need to assign values to these parameters in double or single quotes, just write directly, .env automatically converts it into quoted string.

Once you are done with this, install the packages through npm ci which stands for clean install. Also you need to run the following command to check for you eslint and jest testcases:

npm run prepare

And finally, run the server with npm run serverstart or npm run serverstartWin depending on your operating system.

How to Contribute

  1. Choose an issue, bug, exploit, or feature to work on: Start by identifying an issue or feature in the repository that you would like to work on. If you can't find an existing issue or feature, you can create a new one.

  2. Fork the repository: Once you have identified an issue or feature to work on, you will need to fork the repository. This creates a copy of the repository in your own GitHub account.

  3. Clone the repository: Next, you will need to clone the repository to your local machine. You can do this by using the git clone command and specifying the URL of the repository.

  4. Create a new branch: Before making any changes, you should create a new branch in your local repository. This will keep your changes separate from the main branch of the repository and make it easier to submit a pull request later on.

  5. Make your changes: Now you can make your changes to the code in your local branch. Be sure to follow the project's coding style and conventions.

  6. Test your changes: Once you have made your changes, be sure to test them thoroughly to ensure that they work as intended and do not introduce new issues or bugs.

  7. Commit your changes: Once you are satisfied with your changes, commit them to your local branch using the git commit command.

  8. Push your changes: Once you have committed your changes, push them to your forked repository on GitHub using the git push command.

  9. Open a pull request: Finally, open a pull request to merge your changes into the main branch of the repository. Be sure to describe your changes and explain why they are necessary or beneficial. Note that the project maintainers may request changes or reject your pull request, so your first pull request is not guaranteed to be accepted.

It's also worth noting that you should communicate with the project maintainers and other contributors to ensure that your changes align with the project's goals and direction.

Connect with us

Twitter     Instagram     Discord     Gmail     LinkedIn    

erp-backend's People

Contributors

aastha-s-rai avatar abhishekgoyal007 avatar alifanza259 avatar anipr2002 avatar ankit638-ux avatar aryanzs avatar asthasingh182004 avatar bhxshxn avatar deepti-50 avatar demonkillerr avatar dhruvrg avatar dz-ai avatar gauravpadam avatar harshau007 avatar hitansh159 avatar hricha11 avatar kskarthik5 avatar mouryasujit avatar parikshit-007 avatar rahulsingh2312 avatar ranjeet25 avatar sanika-wani avatar shreyam462 avatar skyline-r34v avatar sumitshinde-84 avatar sumitst05 avatar swathiharish-gh avatar tejasnair9977 avatar vikrantsingh22 avatar vinitchawda06 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

erp-backend's Issues

Create employee bank model

Create an employee bank model

attributes to include can be referred in the docs link: <ink to be added>

added model with appropriate key values and conditions.
Models should be added in the model folder under the file and model name of emp_bank

create faculty metadata model

Create a faculty metadata model

This model will refer to the faculty metadata.

create a schema with key and value pairs with appropriate conditions.
Models should be added to the model folder.
the file name should be fac_metadata.js

Create student college model

Create a student current college details model

attributes to include can be referred in the docs link: <ink to be added>

added model with appropriate key values and conditions.
Models should be added in the model folder under the file and model name of std_college

Create employee work history model

Create an employee work history model

attributes to include can be referred in the docs link: <ink to be added>

added model with appropriate key values and conditions.
Models should be added in the model folder under the file and model name of emp_work_history

setup a logger

setup Winston logger with the following config

  • log based on the environment
  • daily log in different file ie setup file rotary

Create Infra model

Create an infra model file in models folder

added model with appropriate key values and conditions.
Models should be added in the model folder.
file name should be infra.js

JWT binding with machine

currently JWT token can be achieved by third party and pretend to be the user.
bind JWT with machine by using IP or some other provision.

Create student education history model

Create a student education history model

attributes to include can be referred in the docs link: <ink to be added>

added model with appropriate key values and conditions.
Models should be added in the model folder under the file and model name of std_edu_history

Also make object of values that share same parent
for eg:

GRADUATION BRANCH    
GRADUATION DEGREE    
GRADUATION MARK PCT    
GRADUATION PASSING YEAR 

can be put as:

{
graduation: { 
    institute: Value, 
    branch: Value, 
    ...}
}

create organization model

Create a organization model

This model will refer to the organization.

create a schema with key and value pairs with appropriate conditions.
Models should be added to the model folder.
the file name should be organization.js

Create employee personal model

Create an employee personal model

attributes to include can be referred in the docs link: <ink to be added>

added model with appropriate key values and conditions.
Models should be added in the model folder under the file and model name of emp_personal

Create student personal model

Create a student personal model

attributes to include can be referred in the docs link: <ink to be added>

added model with appropriate key values and conditions.
Models should be added in the model folder under the file and model name of std_personal

create attendance model

Create an attendance model

This model will refer to the attendance of employees and students.

create a schema with key and value pairs with appropriate conditions.
Models should be added to the model folder.
the file name should be attendance.js

refactor and add CURD to organization model

new Schema:

parent: Organization

name: str

startDate: date

accreditation: Accreditation

create the following function for the organization model:

  • create
  • update
  • read
  • remove

use user.js for reference

create faculty model

Create a faculty model

This model will refer to faculty working in college.

create a schema with key and value pairs with appropriate conditions.
Models should be added to the model folder.
the file name should be faculty.js

Create employee current employment details model

Create an employee personal model

attributes to include can be referred in the docs link: <ink to be added>

added model with appropriate key values and conditions.
Models should be added in the model folder under the file and model name of emp_curr_details

Incorrect response on "/" route

When we hit for eg: localhost:3000/ it should respond with an error as there is no render used.
but instead, it replies with index.html
This is unexpected behavior.
remove index.html and update the index controller accordingly.

Create student medical model

Create a student medical history details model

attributes to include can be referred in the docs link: <ink to be added>

added model with appropriate key values and conditions.
Models should be added in the model folder under the file and model name of std_med_history

create event model

Create a event model

This model will refer to information on events occuring in college in college.

create a schema with key and value pairs with appropriate conditions.
Models should be added to the model folder.
the file name should be event.js

Create employee education history model

Create an employee education history model

attributes to include can be referred in the docs link:

added model with appropriate key values and conditions.
Models should be added in the model folder under the file and model name of emp_edu_history

Also, make object of values that share the same parent
for eg:

GRADUATION BRANCH    
GRADUATION DEGREE    
GRADUATION MARK PCT    
GRADUATION PASSING YEAR 

can be put as:

{
graduation: { 
    institute: Value, 
    branch: Value, 
    ...}
}```

Save password in secure way

Save password after hashing
currently password is saved without hashing this creates violability.

User hash and salt. Look into the Bcrypt package and implement the hashing.
This should be provided in Util.js
Function should be called before saving and comparing.

Create student bank model

Create a student bank details model

attributes to include can be referred in the docs link: <ink to be added>

added model with appropriate key values and conditions.
Models should be added in the model folder under the file and model name of std_bank

Create Module model

Create a Module model

This model will refer to modules under each course.

create a schema with key and value pairs with appropriate conditions.
Models should be added to the model folder.
the file name should be module.js

Create Endpoint for forget password

Flow for process

  • POST request for password reset
    • body contains uid and emailId
  • verify the details and send otp to user on emailId
  • POST request for new password
    • body contains OTP and new password

Change OTP store

Currently otp store is just js object. On server reset all the otp will be lost.
If server is not restarted OTP Store will become a big object that will consume a lot of memory.

Requirement:

  1. create OTPStore model
  2. use It in appropriate manner

create department model

Create a department model

This model will refer to the department.

create a schema with key and value pairs with appropriate conditions.
Models should be added to the model folder.
the file name should be department.js

Login endpoints

Create endpoint for

  • creating user
  • login
  • verifying user

Also make a middleware to authenticate the request

Create group model

Create a group model

This model will refer multiple students together as a group, in cases such as batch.

create a schema with key and value pairs with appropriate conditions.
Models should be added to the model folder.
the file name should be group.js

create accreditation model

Create an Accreditation model

This model will refer to Accreditation received by a department or college.

create a schema with key and value pairs with appropriate conditions.
Models should be added to the model folder.
the file name should be accreditation.js

Update module schema and CURD operation

Module schema changes, change ( moduleNo ,moduleName ,moduleOutcome ,moduleContents ) to ( moduleNo ,moduleName , moduleOutcome, moduleContents )and update in CURD operation parameters

create subject model

Create an subject model

This model will refer to the subjects taught by teachers, under a department.

create a schema with key and value pairs with appropriate conditions.
Models should be added to the model folder.
the file name should be subject.js

refactor course and add CURD

Change file name form subject.js to course.js

update schema

Name: str

Code: str  

theoryHours: int

tutorialHours: int

practicalHours: int

totalHours: virtual  (should return sum of theoryHours, tutorialHours, practicalHours)

totalCredit: int

ISAMarks: int

ESEMarks: int

theoryMarks: virtual (should return sum of ISAMarks, ESEMarks)

tutorialMarks: int

practicalMarks: int

totalMarks: virtual  (should return sum of theoryMarks, tutorialMarks, practicalMarks) 

semester: Semester

subType: str  ENUM: [open, professional, core]                 

prerequisites: str[]

objective: str

outcomes : [{outcome: str, RBTLevel: str[]}]        # this is the modules from syllabus

modules: Module[]

practicals: Practical[]

tutorials: Tutorial[]

assignments: Assignment[]

reccTextbooks: str[]

refBooks: str[]

evalScheme: str[int]

create the following function for the course model:

  • create
  • update
  • read
  • remove

use user.js for reference

Setup

Setup backend for ERP system

  • used Express generator to laydown structure for the backend of the project
  • setup database connection with moongose

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.