diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..8a7d9fd --- /dev/null +++ b/LICENSE @@ -0,0 +1,18 @@ +MIT License + +Copyright (c) 2026 space@reversed.dev + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and +associated documentation files (the "Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the +following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial +portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT +LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO +EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..00d0c34 --- /dev/null +++ b/README.md @@ -0,0 +1,57 @@ +# [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. \ No newline at end of file