Snacc-Overflow / student-toolbox

A collection of useful tools for university students. This project was developed by Snacc Overflow for SOFTENG 310 at The University of Auckland.
MIT License
0 stars 9 forks source link

📚 Student Toolbox 🧰

v1.20.4

Student Toolbox is a web application designed to make student life easier by organizing their schedule, calculating their grades, and managing the tasks that they need to complete.

Getting Started 🚀

These instructions will get you a copy of Student Toolbox up and running on your local machine for development and testing purposes.

Prerequisites ✔️

Install the following software:

  1. Node.js: A JavaScript runtime built on Chrome's V8 JavaScript engine.
node -v
  1. npm: Node package manager, included with Node.js.
npm -v
  1. Git: A version control system for tracking changes in source code.
git --version
  1. A modern web browser: Such as Google Chrome or Mozilla Firefox.
  1. An Integrated Development Environment (IDE): Such as Visual Studio Code.

Installing

A step-by-step series of examples that tell you how to get a development environment running:

  1. Fork the repository

  2. Clone the forked repository

  3. Install dependencies:

npm install

Running

npm run  dev

Running the tests

Connecting to the database

We use a MongoDB Atlas cluster to store user data:

  1. Contact a team member to get the connection string.
  2. Add the connection string to your .env.local as MONGODB_URI=<connection string>.
  3. Modify the User schema in /lib/mongodb/mongodb.js to specify the data types you want to store.
  4. Use the Mongoose API to push changes to the database.
  5. Install mongosh (CLI) or MongoDB Compass (GUI) to inspect database contents.

Authentication

We use Auth.js to provide authentication and session management:

  1. Contact a team member to get the authentication secret
  2. Add the secret to your .env.local as AUTH_SECRET=<secret>.
  3. To register a new user, navigate to /register and enter a username and password.
  4. To sign in, use the button in the sidebar and enter user credentials.

Deployment

Built With 🛠️

Contributing

Please read the contributor guidelines for details on contributing and the code of conduct for expected behaviour.

Helpful documentation

Versioning

Versioning system: Semantic versioning Version control: Git

Authors

License

MIT License