Files
XP-System/README.md

45 lines
2.0 KiB
Markdown

# XP-System
This school project is for my teacher to have students log in and check out their XP and assignments.
This website application is not available online, this is just a locally run website at our school.
To create a teacher, it must be done by a site admin.
You'll need to create the site admin in the database in a collection called users,
and insert a document via MongoDB Compass. Format the document as shown:
`{
"role": "Admin",
"name": your name,
"email": your email,
"password": your encrypted password
}`
Replace `your name` with the name you specify, `your email` with the email you would like to use to login,
and replace `your encrypted password` with your [Encrypted Password](#Encrypting Your Password)
The ID for your admin document should be auto generated by MongoDB Compass when you `insert` the document.
### Requirements :
1. [Node.js](https://nodejs.org/en/)
1. [MongoDB](https://docs.mongodb.com/manual/administration/install-community/)
### Getting Started with Code :
1. Set up MongoDB on your computer.
2. Clone repo from https://github.com/Braeden57/XP-System.git
3. Run `npm install` to install dependencies.
4. Duplicate `.env.example` and rename the new file to `.env`. Edit to your configurations.
1. Run `npm start` to boot up server.
1. Go to http://localhost:8080. Or Whatever you set it to in the `.env` file.
### Setting up MongoDB
1. Install mongodb and follow the setup steps.
1. [Step by step instructions](https://docs.mongodb.com/manual/tutorial/install-mongodb-on-windows)
### Accessing the Database
1. Locally this will use any db you set the DB_URI to in the `.env` file.
1. You can use MongoDB compass app to view the db and edit any information stored.
2. Or connect it to an external db by changing the DB_URI in the `.env` to your db key.
### Encrypting Your Password
1. To encrypt your password while creating the admin account. Go into the `config` folder,
1. follow the instructions in encrypt.js and run encrypt.js via node `node encrypt.js`