You could use two tables. The first table is the details for each project. That table is linked to the second table, which holds your student information with the ID as the key. In your first table, you can have lookup fields that, once the ID from the second table is linked, all those student data is filled in. Create a form in your first table that students fill out, and they start by choosing their ID which is coming from the second table.
The key to preventing duplicate projects is to create two views in your second table. The first one filters by students who have a linked record from table one and the second view is the students without a current linked project.
In your form, under the field where they choose their ID, set it to use the view that has unlinked projects. Now what happens is that when they open the form, and choose their ID, they will only see it until they submit the form. Once they submit the form and have a linked project, their ID falls out of that view.