A website where the owner of a PG/Rent business can efficiently handle all activities related to rent mangement
From the root of the project type the following in your terminal:
1. npm run initialize
2. npm start
MongoDB database can be seeded with the default test values using the script found in api/utils/seedDB.js. Alternatively, run the following from project root:
cd api
npm run seed
In order to delete all previous data and "reseed", then use:
cd api
npm run reseed
username: abc
password: 123
- Vite - Bundler
- PropTypes - For React typing
- React - Main Frontend Framework
- Redux - state management
- React-Routes - frontend routing
- ExpressJS - backend rest API
- MongoDB/Mongoose - Database management
- MUI - For Icons and UI
- JWT - for authentication
-
Nodemon: to restart api server whenever a change occurs.
-
eslint: To check for linting errors.
-
prettier: To check for styling errors.
-
Husky: To ensure non-styled/linted does not get into a commmit.
-
Concurrently: To run client and server code concurrently
-
Git
- Basics (read atleast the first two chapters)
- Commits and Branches (interactive tutorial)
-
Javascript
-
JWT
- Intro Video (a short intro on what jwt really is)
- Implementation in NodeJS (a longer practical implementation of jwt stuff from the same author)
Motivation for the client side structure comes from this Video. This structure can be found here.
Most of the structure has been generated by the express-generator package:
npx express-generator --no-view api
an example of .env is also provided under ./api, a copy of this file on google drive for colloboration purposes can be requested from me Here. This has not been put in the github repository for obvious security reasons.
-
API specs are located in api/api-specs.xlsx
-
Format of all errors from server:
{
"code":"code"
"message":"message"
}
-
user: The logged in user or owner of the PG
-
room: A room contains references to tenants and transactions
-
tenant: A tenant "occupies" a room and contains information like phone number, aadhar card etc.
-
transaction: A money transfer, transactions are bound to rooms and not to users. A positive balance: The tenant has to pay the PG owner.
-
Linux - So you don't face nodemon and other stupid windows errors.
-
Latest npm and lts version of node: To ensure stuff doesn't break due to strange version errors.