# [Upcomming] Exams A Exam tracker that is selfhostable, does not rely on any third party services and is open source. ![Exam Manager Screenshot](https://shx.reversed.dev/u/4DnGHu.png) 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 ```bash 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! 2. Configure the environment variables in the `.env` file ```env 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. ``` 3. Start the application using Docker Compose ```bash docker compose up -d ``` 4. 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](LICENSE) file for details.