Files
exams/README.md

2.3 KiB

[Upcomming] Exams

A Exam tracker that is selfhostable, does not rely on any third party services and is open source.

Exam Manager Screenshot

Built using RJ-WEB, React router and Tailwind CSS, this little project is fun to develop and is a great way to learn new technologies. It is also a great way to keep track of your exams and never miss a deadline again.

Features

  • Add exams with a name, date and description
  • View upcoming exams in a list
  • Edit and delete exams
  • Upload Study materials for each exam
  • View past exams and track grades

Installation (🐳Docker)

  1. Clone the repository
git clone https://gitea.reversed.dev/space/exams
cd exams

Mini-Warning:

Uploads rely on minio, which is not included in the docker-compose file. You will need to set up minio separately and configure the environment variables accordingly. If you are smart enough, add a minio instance into the docker-compose.yml file. Thanks for reading!

  1. Configure the environment variables in the .env file
COOKIE_DOMAIN=localhost # Where is your domain hosted? This is SUPER important!!! If you are running this locally, set it to localhost. If you are running this on a server, set it to your domain name. I do NOT think you can use ip addresses here, you're on your own.
DB_CONN_STRING=YOURURL # Get a Mongo DB instance running and put the connection string here. You can use a local instance or a cloud service like MongoDB Atlas.
PORT=8000

CDN_KEY=FunnyKey
CDN_SECRET=FunnySecret
CDN_BUCKET=exams
CDN_HOST=YOURHOST.com # either an ip address or a domain. Whichever you have setup.
CDN_PORT=443
CDN_USE_SSL=true # Got a ssl certificate? Set this to true, otherwise set it to false.
  1. Start the application using Docker Compose
docker compose up -d
  1. Access the application at http://localhost:8000 (or your configured domain)

Upcoming Features

  • Homework Tracker?
  • Create & Share Classes with other users on the same instance
  • Admin panel for the first created user to manage users and exams (and instance settings like registration)

Contributing

Contributions are welcome! If you have any ideas for new features or improvements, feel free to open an issue or submit a pull request.

License

This project is licensed under the MIT License. See the LICENSE file for details.